Gravitação
Model was written in NetLogo 6.2.0
•
Viewed 43 times
•
Downloaded 9 times
•
Run 0 times
Do you have questions or comments about this model? Ask them here! (You'll first need to log in.)
Info tab cannot be displayed because of an encoding error
Comments and Questions
Please start the discussion about this model!
(You'll first need to log in.)
Click to Run Model
turtles-own [ fx ;; vetor força no eixo x fy ;; vetor força no eixo x vx ;; vetor velocidade no eixo x vy ;; vetor velocidade no eixo x xc ;; coordenada no eixo x (caso as particulas saiam do mundo) yc ;; coordenada no eixo y (caso as particulas saiam do mundo) r-sqrd ;; Quadrado da distância para o centro de massa ] globals [ m-xc ;; Coordenada do click-mouse (onde a massa ira atuar) m-yc ;; Coordenada do click-mouse (onde a massa ira atuar) g ;; Constante gravitacional para diminuir a aceleração ] ;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; Procedimento Montar ;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;; to montar clear-all set g 0.5 set-default-shape turtles "circle" create-turtles numero [ if (not cores?) [ set color white ] set size 10 fd (random-float (max-pxcor - 6)) set vx 0 set vy 0 set xc xcor set yc ycor ] reset-ticks end ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; Procedimento em tempo de execução ;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; to ativar if mouse-down? [ ;; Recebe as coordenadas do mouse set m-xc mouse-xcor set m-yc mouse-ycor ask turtles [ gravitate ] enfraquecer-rastro tick ] end to gravitate atualizar-forca atualizar-velocidade atualizar-posicao end to atualizar-forca ;; Parecido com o procedimento 'distancexy', só que para um cenário infinito(Sem bordas) set r-sqrd (((xc - m-xc) * (xc - m-xc)) + ((yc - m-yc) * (yc - m-yc))) ;;Impede a divisão por zero prevents divide by zero ifelse (r-sqrd != 0) [ ;; Calcula os componentes do vetor F usando lei do inverso do quadrado set fx ((cos (atan (m-yc - yc) (m-xc - xc))) * (massa / r-sqrd)) set fy ((sin (atan (m-yc - yc) (m-xc - xc))) * (massa / r-sqrd)) ] [ ;; se r-sqrd = 0, então está na massa, portanto não há força. set fx 0 set fy 0 ] end to atualizar-velocidade ;; Turtle Procedure ;; Atualiza a velocidade de cada particula ;; Realizando a soma com a força e velocidade anterior set vx (vx + (fx * g)) set vy (vy + (fy * g)) end to atualizar-posicao ;; Turtle Procedure set xc (xc + vx) set yc (yc + vy) ifelse patch-at (xc - xcor) (yc - ycor) != nobody [ setxy xc yc ifelse (cores?) [ if (color = white) [ set color one-of base-colors ] ] [ set color white ] show-turtle if (taxa-desaparecimento != 100) [ ifelse (color = white) [ set pcolor red + 3 ] [ set pcolor color + 3 ] ] ] [ hide-turtle ] end to enfraquecer-rastro ask patches with [pcolor != black] [ ifelse (taxa-desaparecimento = 100) [ set pcolor black ] [ if (taxa-desaparecimento != 0) [ fade ] ] ] end to fade ;; Procedimento do Rastro let new-color pcolor - 8 * taxa-desaparecimento / 100 ;; se new-color não está com o mesmo tom, então o rastro se torna preto ifelse (shade-of? pcolor new-color) [ set pcolor new-color ] [ set pcolor black ] end ; Copyright 1998 Uri Wilensky. ; See Info tab for full copyright and license.
There is only one version of this model, created about 3 years ago by Igor Souza.
Attached files
File | Type | Description | Last updated | |
---|---|---|---|---|
Gravitação.png | preview | Preview for 'Gravitação' | about 3 years ago, by Igor Souza | Download |
This model does not have any ancestors.
This model does not have any descendants.