Guest User

Untitled

a guest
Dec 6th, 2019
121
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. # Nome do arquivo de saida, informado pela aplicacao
  2. ArqSaida <- 'gantt-cadeira.png'
  3.  
  4. #
  5. # Parametros que devem ser informados pelo pert-solver
  6. #
  7.  
  8. # Numero de atividades e makespan calculado
  9. Makespan <- 20.500000
  10. Atividades <- 14
  11. # Vetor com as flags das atividades criticas
  12. Cp <- c(T,T,F,F,T,F,F,F,T,F,T,T,T,T)
  13. # Vetor com os indices das atividades
  14. K <- c(0,1,2,3,4,5,6,7,8,9,10,11,12,13)
  15.  
  16. # Vetor com os tempos de início das atividades
  17. Sk <- c(0.00,0.00,3.00,3.00,3.00,3.00,0.00,1.00,10.00,12.00,12.00,15.00,20.00,20.50)
  18.  
  19. # Vetor com os tempos de termino das atividades
  20. Tk <- c(0.00,3.00,7.00,9.00,10.00,6.00,1.00,3.00,12.00,14.00,15.00,20.00,20.50,20.50)
  21.  
  22. #
  23. # Fim dos parametros. Daqui pra frente deve ser automatico.
  24. #
  25.  
  26. # Calculos auxiliares
  27. xMin <- 0
  28. xMax <- 21.50
  29. yMin <- 0
  30. yMax <- 15
  31.  
  32. # Geracao de arquivo
  33. png(ArqSaida, width=1200)
  34.  
  35. # Cria o plot
  36. titulo <- 'Gráfico de Gantt'
  37. plot(c(xMin, xMax), c(yMin, yMax), type='n',main=titulo, xlab='Tempo', ylab='Atividades');
  38.  
  39. # Desenha um retangulo para cada atividade
  40. for(indice in 1:length(K))
  41. {
  42. # Busca as coordenadas dos pontos do retangulo
  43. Px1 <- Sk[indice]
  44. Py1 <- K[indice]
  45. Px2 <- Tk[indice]
  46. Py2 <- K[indice]
  47. Px3 <- Tk[indice]
  48. Py3 <- K[indice]+1
  49. Px4 <- Sk[indice]
  50. Py4 <- K[indice]+1
  51.  
  52. # Define a cor de acordo com a flag de criticidade
  53. if(Cp[indice] == T)
  54. {
  55. cor <- 'red'
  56. cortexto <- 'white'
  57. }
  58. else
  59. {
  60. cor <- 'yellow'
  61. cortexto <- 'black'
  62. }
  63.  
  64. # Desenha o polígono, fechando as coordenadas
  65. polygon(c(Px1, Px2, Px3, Px4, Px1),c(Py1, Py2, Py3, Py4, Py1), col=cor)
  66.  
  67. text((Px1 + Px2)/2, (Py1 + Py3)/2, K[indice], col=cortexto)
  68. }
  69. dev.off();
RAW Paste Data