x
r y
z
r
mv x
p mv y
mvz
Aceleração altera velocidade que altera
posição;
vt 1 vt a.t
v vxi v y j
rt 1 xt 1 yt 1
xt 1 xt vx t.i
yt 1 yt v y t. j
Obs.: existem métodos de integração
computacionalmente mais eficientes
F2
F3
F1
F
F3i
F1 j
F2 j
Momento linear
F
F1i
Equlíbrio: ΣF=0
Equilíbrio
Dinâmico
Equilíbrio
Estático
• Queda Livre X Queda Amortecida
Aceleração da
gravidade próximo à
superfície da Terra:
a=g=9,8m/s2
F = m.a
P = m.g
2
v
ac
R
Aceleração Centrípeta
R: Raio da trajetória.
Direção e sentido apontando
para o centro da trajetória.
Aceleração tangencial:
v2
Fc m
R
R: Raio da trajetória.
Direção e sentido
apontando para o centro
da trajetória.
Quando um corpo está em contato
com uma superfície, a superfície,
ainda que aparentemente rígida,
deforma e empurra o corpo com
uma força normal N que é
perpendicular à superfície.
Forças de atrito:
› Opostas à tendência de movimento
› Dependem das características das
superfícies em contato
› Processo de solda entre os “picos” das
superfícies
Estático (fate):
› Os pontos em contato entre as superfícies se
soldam, de forma que há resistência ao
movimento relativo entre as superfícies.
Cinético (fatc):
› Caso uma força aplicada seja suficiente
para romper as soldas iniciais, novas soldas
continuamente são formadas e rompidas
durante o deslizamento.
fate fatc
Força de atrito estático:
› Variável:
Se nenhuma força com componente tangencial à
superfície de contato for aplicada, a fate é igual a
zero;
Se houver força com componente tangencial à
superfície de contato, a fate aumenta até um valor
máximo dado por:
fate _ max e N
Força de atrito cinético
› Constante se as características das superfícies
forem constantes:
fatc c N
Quando há uma velocidade relativa
entre um fluido e um corpo, o corpo
experimenta uma força de arrasto
que se opõe ao movimento relativo e
que está direcionada no mesmo sentido
em que o fluido escoa em relação ao
corpo.
1
FR CAv 2
2
A: Área da seção transversal efetiva
do corpo
ρ: densidade do fluido
C: Coeficiente de arrasto
1
2
FR CAv
2
Se v aumenta, Fr aumenta, até que
Fr = P
Nesse caso, chega-se à velocidade terminal:
vt
2 Fg
C A
Objeto
vt (m/s)
Peso em
campos de tiro
145
Distância para
0.95vt (m)
2500
Bola de tênis
Gota de chuva
Para-quedista
42
7
5
210
6
3
Horizontal:
a=0
Vertical:
a=g=9,8m/s2
Newton expressou a sua segunda lei
originalmente em termos de momento:
p mv
FRe s
p
t
Impulso: variação de momento linear.
Impulso: medida tanto da intensidade
quanto da variação da força
I p
I F t , com F constante
Exemplo: Colisões (força variável)
Se nenhuma força externa resultante
atua sobre um sistema de partículas, o
momento linear total do sistema não
pode variar
Pi Pf
, sistema fechado, isolado
Colisão é uma interação entre partículas,
durante a qual há conservação do
momento linear do sistema, isto é, o
momento linear do sistema, antes da
colisão, é igual ao momento linear do
sistema, após a colisão.
Pi Pf
Colisões elásticas
› Numa colisão elástica conserva-se a energia cinética
do sistema.
Colisões inelásticas
› Não há conservação da energia cinética do sistema.
Colisões perfeitamente inelásticas (
perfeitamente inelásticas )
› Não existe conservação da energia cinética do
sistema e os corpos seguem juntos após a colisão, isto
é, com a mesma velocidade após a colisão.
É a razão entre a velocidade relativa antes e
após a colisão:
Onde:
› v'a é a velocidade escalar final do primeiro objeto
após o impacto
› v'b é a velocidade escalar final do segundo objeto
após o impacto
› va é a velocidade escalar inicial do primeiro objeto
antes do impacto
› vb é a velocidade escalar inicial do segundo
objeto antes do impacto
Voltar a simulação ao ponto exato de
contato
Modificar posições e velocidades
vt
vn
v
Após a colisão:
N
v
new
v
new
v n v t
Coeficiente de restituição
x
v
x
v
x
v
v f / m
Vetores concatenados x e v
formam um vector 6-n:
posição no espaço de fase.
Fazendo a derivada
primeira do espaço de fase.
Temos equações
diferenciais de ordem 1.
Começamos com:
x
v
v
f / m
Aplicando o método de Euler:
x(t t ) x(t ) t x(t )
x(t t ) x(t ) t x(t )
Fazendo substituições:
x(t t ) x(t ) t v(t )
v(t t ) x(t ) t
f (x , x ,t )
m
Iterativamente:
x i 1 x i t v i
v
i 1
fi
v t
m
i
Erros ocorrem dependendo de t.
x
v
f
m
Posição no espaço de fase
posição
velocidade
Acumulador de força
massa
typedef struct{
float m; /* mass */
float *x; /* position vector */
float *v; /* velocity vector */
float *f; /* force accumulator */
} *Particle;
Em geral, temos um sistema de n partículas cujas posições devem
ser determinadas no tempo:
particles
n
time
x1 x2
v v
1 2
f1 f2
m m
1 2
typedef struct{
float m; /* mass */
float *x; /* position vector */
float *v; /* velocity vector */
float *f; /* force
accumulator */
xn
v
n
fn
m
n
typedef struct{
Particle *p; /* array of pointers to
particles */
int n; /* number of particles */
float t; /* simulation clock */
} *ParticleSystem
Em determinado instante, a função g
define um campo vetorial de x:
› Vento
› Rios
A equação:
𝑥 = 𝑔(𝑥, 𝑡)
é uma equação diferencial de primeia ordem.
Podemos resolver para x ao longo do tempo,
colocando a partícula em uma posição inicial
e integrando passo a passo no campo
vetorial:
Começar aqui
Esse tipo de solução é denominada curva
integral.
https://www.youtube.com/watch?v=S7r
7OYufPo8
Considere uma partícula num campo de forças f.
Nesse caso, a partícula tem:
› Massa
dv
d x
a x v
› Aceleração
dt
dt
› Velocidade
› Posição
A partícula obedece a segunda Lei de Newton:
2
2
f ma mx
O campo de forças f pode depender da posição, da
velocidade e do tempo
Rearranjando, temos:
x
f (x , x ,t )
m
Eq. Diferencial
de segunda
ordem
x v
Eqs. Diferenciais
f (x , v ,t ) de primeira
v
m
ordem
1. Clear forces
Loop over particles, zero force accumulators
Sum all forces into accumulators
Loop over particles, return v and f/m
2. Calculate forces
3. Return derivatives
x1 x2
v v
1
2
f1 0 f2 0
m m
1
2
xn
v
n
fn 0
m
n
1
Clear force
accumulators
F1
Apply forces
to particles
v1 v2
f f
1 2
m1
m2
vn
f
n
mn
2
3
F2
x1 x2
v v
1 2
f1 f2
m m
1 2
Return derivatives
to solver
Fnf
F3
xn
v
n
fn
m
n
O movimento complexo de um sistema
de objetos (um carro ou uma bailarina)
pode ser simplificado se determinarmos
o CENTRO DE MASSA desse sistema.
O CENTRO DE MASSA de um sistema de
partículas é o ponto que se move como
se ali toda a massa do sistema estivesse
concentrada e todas as forças externas
fossem aplicadas.
1 n
xcm
mi xi
M i 1
ycm
1 n
mi yi
M i 1
xcm
m1 x1 m2 x2
m1 m2
Exemplo:
FRe s MaCM
Quantidade que indica como a massa
do corpo em rotação está distribuída
em torno do eixo rotacional.
Definição:
I mi ri
2
I
I MR 2
MR 2
I
2
MR 2 ML2
I
4
12
M
2
2
( R1 R2 )
2
M (a 2 b 2 )
I
12
Se soubermos o momento de inércia de
um corpo em relação ao eixo que passa
pelo seu centro de massa ICM e
quisermos conhecer o momento de
inércia em relação a outro eixo, paralelo
ao primeiro e situado a uma distância h,
temos que:
I I CM Mh
2
O deslocamento do centro de massa e a rotação estão vinculados:
s é o deslocamento do centro de massa do objeto
é o deslocamento angular do objeto em torno de um eixo que
passa pelo CM do sistema.
vCM
R
s
s R
A velocidade do CM é dada por:
vCM
ds d
R R
dt
dt
𝜏 =𝐹×𝐿
f ma
rF
P mv
L r p
dP
f
dt
Pi c
dL
dt
Li c
I
r
F
r
p mv
Momento
Angular
q (t )
(t )
x(t )
L(t ) ((q(t ) x(t )) mi (q (t ) v(t )))
( R(t )q mi ( (t ) (q(t ) x(t ))))
(mi ( R(t )q ( (t ) R(t )q)))
Tensor de
Inércia
𝑑𝑚
I xx
I I xy
I xz
I xx ( y z )dm
2
2
I yy ( x 2 z 2 )dm
I zz ( x y )dm
2
2
I xy
I yy
I yz
I xz
I yz
I zz
I xy xydm
I xz xzdm
I yz yzdm
x (t )
R (t )
S (t )
P (t )
L (t )
Object attributes
M, Iobject-1
1
1
I rotated RI object R 1
P(t )
v(t )
M
Espaço de fase
F
r
rF
x(t ) v(t )
*
d
d R (t ) w(t ) R (t )
S (t )
dt
dt P (t ) F (t )
L(t ) (t )
w(t ) I (t ) 1 L(t )
Obs: Na prática, utiliza-se quatérnions ao
invés de matriz de rotação
Pontos discretos de massa (~particle
system) conectados por uma rede de
molas sem massa
Usado para modelar pele, músculos,
cabelos, roupas, …
Lei de Hooke:
f kspring ( x r )
Podemos incluir termo de amortecimento:
f [kspring ( x r ) kdampv]
x1
p1
v1
r = comprimento
em repouso
x2
p2
v2
Nota: Muito instável com integração de Euler… Outros métodos
como Runge-Kutta são recomendáveis
Spring mesh
Each vertex is a point mass
Each edge is a spring-damper
Diagonal springs for rigidity
Global forces: gravity, wind
Algoritmo
› Há n partículas no sistema e x representa o vetor
posição
m (d2X/dt2) + C (dX/dt) + K X = F
› m, C, K são matrizes 3n x 3n:
massa,
constante de amortecimento
dureza das molas.
m e C são diagonais.
F é a força.
› Para resolver:
dV/dt = M–1 ( - CV - KX + F)
dX/dt = V
Equações de Navier-Stokes
u=0
Incompressibilidade
ut = k2u –(u)u – p + f
Difusão
Pressão
Advecção
Velocidade
Forças
Navier-Stokes Equations
u=0
Incompressibility
ut = k2u –(u)u – p + f
Diffusion
Pressure
Advection
Change in Velocity
Body Forces
Navier-Stokes Equations
u=0
Incompressibility
ut = k2u –(u)u – p + f
Diffusion
Pressure
Advection
Change in Velocity
Body Forces
All values live on regular grids
Need scalar and vector fields
Scalar fields: amount of smoke or dye
Vector fields: fluid velocity
Subtract adjacent quantities to
approximate derivatives
1.2
3.7
cij
5.1
…
cij
1
2c
ct = k
change in
value
value relative
to neighbors
1
cijnew = cij + k t (ci-1j + ci+1j + cij-1 + cij+1 - 4cij)
-4
1
1
Original
Some Diffusion
More Diffusion
uij = (ux,uy)
ut =
2
k u
viscosity
Two separate diffusions:
x
u
y
u
t=
2
x
k u
t=
2
y
k u
… blur the x-velocity and the y-velocity
Effect of Viscosity
Low
Medium
High
Very High
• Each one is ten times higher viscosity
than the last
“Melting and Flowing”
Mark Carlson, Peter J. Mucha, Greg Turk
Symposium on Computer Animation 2002
Navier-Stokes Equations
u=0
Incompressibility
ut = k2u –(u)u – p + f
Diffusion
Pressure
Advection
Change in Velocity
Body Forces
Advection
0.3
0.3
2.7
ct = –(u)c
change in
value
advection
current values
ut = –(u)u
Two separate advections:
x
u
y
u
t=
x
–(u)u
t=
y
–(u)u
… push around x-velocity and y-velocity
Easy to code
Method stable even at large time steps
Problem: numerical inaccuracy diffuses
flow
Navier-Stokes Equations
u=0
Incompressibility
ut = k2u –(u)u – p + f
Diffusion
Pressure
Advection
Change in Velocity
Body Forces
High divergence
Low divergence
Zero divergence
First do velocity diffusion and advection
Find “closest” vector field that is
divergence-free
Need to calculate divergence
Need to find and use pressure
u=?
uyij+1
-uxi-1j
?
uxi+1j
-uyij-1
uij=(uxi+1j - uxi-1j) + (uyij+1-uyij-1)
new
u =
u – p
Take divergence of both sides…
new
u =
u – p
zero
u =
2
p
u =
known
2
p
pnew = p + ( u - 2p)
Let dij = uij
1
unknown
1
-4
1
1
pnewij = pij + (dij - (pi-1j + pi+1j + pij-1 + pij+1 - 4pij))
new
u =
u – p
…and velocity is now divergence-free
Found “nearest” divergence-free vector
field to original.
1) Diffuse velocity
2) Advect velocity
3) Add body forces (e.g. gravity)
4) Pressure projection
5) Diffuse dye/smoke
6) Advect dye/smoke
Andrew Nealen, Matthias Müller, Richard Keiser, Eddy
Boxerman and Mark Carlson. Physically Based Deformable
Models in Computer Graphics. Eurographics STAR. 2005;
Greg Turk. Lecture Notes: Fluid Simulation for
Computer Animation.
http://www.cc.gatech.edu/~turk/powerpoint_presentations/fl
uids.ppt
Rick Parent. Computer Animation: Algorithm and Techniqes.
Elsevier.
David Baraff. Rigid Body Dynamics. SIGGRAPH Course notes
2001.
http://www.pixar.com/companyinfo/research/pbm2001/pdf/s
lidesf.pdf