« Mathématiques avec Python et Ruby/Joukovski et Ruby » : différence entre les versions

Contenu supprimé Contenu ajouté
Aucun résumé des modifications
Aucun résumé des modifications
Ligne 71 :
}
ligne+='" stroke="yellow" stroke-width="1" fill="none"/>'
figure.puts(ligne)
}
</source>
 
===Côté gauche de la figure===
 
Les isobares de gauche se dessinent de la même manière, en remplaçant ''fplus'' par ''fmoins'':
 
<source lang="ruby">
#moitié gauche des isobares
(-25..0).collect { |i|
z=fmoins(Complex(i/10.0,-2.0))
xa=z.real*R+320
ya=240-z.imag*R
ligne='<path d="M'
ligne+=xa.to_s+' '+ya.to_s
(-20..20).collect { |j|
z=fmoins(Complex(i/10.0,j/10.0))
xa=z.real*R+320
ya=240-z.imag*R
ligne+=' L'+xa.to_s+' '+ya.to_s
}
ligne+='" stroke="yellow" stroke-width="1" fill="none"/>'
figure.puts(ligne)
}
</source>
 
==Tracé des lignes de courant==
 
Pour les mettre en exergue, on fera les lignes de courant en rouge.
 
===Côté gauche de la figure===
 
Il suffit d'intervertir les rôles de ''i'' (abscisse) et ''j'' (ordonnée):
 
<source lang="ruby">
#moitié gauche de l'écoulement
(-25..25).collect { |j|
z=fmoins(Complex(-3.0,j/10.0))
xa=z.real*R+320
ya=240-z.imag*R
ligne='<path d="M'
ligne+=xa.to_s+' '+ya.to_s
(-30..0).collect { |i|
z=fmoins(Complex(i/10.0-0.000001,j/10.0))
xa=z.real*R+320
ya=240-z.imag*R
ligne+=' L'+xa.to_s+' '+ya.to_s
}
ligne+='" stroke="red" stroke-width="1" fill="none"/>'
figure.puts(ligne)
}
</source>
 
Le décalage des abscisses permet d'éviter le passage par l'origine, où le changement de feuillet de la transformation donnerait des résultats graphiquement bizarres.
 
===Côté droit de la figure===
 
Même principe, en remplaçant ''fmoins'' par ''fplus'':
 
<source lang="ruby">
#moitié droite de l'écoulement
(-25..25).collect { |j|
z=fp(Complex(0,j/10.0))
xa=z.real*R+320
ya=240-z.imag*R
ligne='<path d="M'
ligne+=xa.to_s+' '+ya.to_s
(0..30).collect { |i|
z=fp(Complex(i/10.0,j/10.0))
xa=z.real*R+320
ya=240-z.imag*R
ligne+=' L'+xa.to_s+' '+ya.to_s
}
ligne+='" stroke="red" stroke-width="1" fill="none"/>'
figure.puts(ligne)
}