Page 1 sur 1
[..] Une fonction qui fait des ronds ? (Pour les Matheux)
Posté : ven. 25 déc. 2009 22:37
par Kikoolol
Bonjour à tous.
Voilà ce que j'aimerais réalisé.
Nous disposons d'un Point A et B situé comme ceci quelques part sur l'écran :
A B
Le programme sais exactement ou ce situe ces deux points, le but étant de faire un cercle ayant pour centre "B" et comme périmètre A, ou A/2 (paramétrable au choix), le cercle sera visible par des MouseMove.
Des experts ?
Merci d'avance !
Re: [..] Une fonction qui fait des ronds ? (Pour les Matheux)
Posté : ven. 25 déc. 2009 23:07
par timmalos
Je pars du principe que pour les mousemove vous savez faire, donc il ne vous manque que les maths:
Une equation de cercle en maths se definit par une abcisse X et une ordonnée Y:
On a (X-Xo)² + (Y-Yo)² = R²
(vient tout droit de pythagore, et oui encore lui) avec R le Rayon et (Xo,Yo) les coordonnées du centre.
Donc commencons par le plus simple:
On recupere les coordonnées de votre centre B et on les entre a la place de Xo et Yo.
Ensuite il nous faut le rayon au carré , don csi vous avez le Perimetre A (qui n'est donc pas un point comme vous le dite une ligne en dessus car un point <> d'un perimetre) avec A=Pi*2R alors R = A/(2*Pi) donc R² = (A²)/(4*Pi²)
Voila vous avez tout, vous faites une boucle qui augment X de votre pas ( a calculer, commencez par mettre assez petit, ca influencera la vitesse du dessin) vous extrayez Y grace a l'equation ci-dessous et un MouseMove sur les coodonnées et le tout est joué.
Bon courage

Re: [..] Une fonction qui fait des ronds ? (Pour les Matheux)
Posté : sam. 26 déc. 2009 00:22
par Kikoolol
Tout d'abord merci pour ton courage et ta rapidité
J'ai commencer à écrire mais je bloque ici :
Code : Tout sélectionner
$Rayon= ( ( $Red[0] - $Blue[0] ) * ( $Red[0] - $Blue[0] ) ) + ( ( $Red[1] - $Blue[1] ) * ( $Red[1] - $Blue[1] ) )
$Rayon = $Rayon * $Rayon
$Rayon = Sqrt($Rayon)
Re: [..] Une fonction qui fait des ronds ? (Pour les Matheux)
Posté : sam. 26 déc. 2009 02:18
par ayuckers
A moi A Moi, Voila mon exemple pour faire des rond
► Afficher le texte
Code : Tout sélectionner
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
$child = GUICreate("My Draw", 200, 200)
Cercle(0,0,0,100)
GUISetState()
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
Func Cercle($Xo,$Yo,$Xb,$Yb) ; ici $Xo et $Yo sont le centre du cercle
; permet de centrer l'axe au centre de la fenetre de 200x200
$Xo = $Xo +100
$Yo = $Yo +100
$Xb = $Xb +100
$Yb = $Yb +100
$Rayon = round(sqrt((($Xb-$Xo)^2) + (($Yb-$Yo)^2))); calcul du rayon
$Diametre = $Rayon * 2
$MyCircle = GUICtrlCreateGraphic(0, 0)
GUICtrlSetGraphic($MyCircle, $GUI_GR_ELLIPSE,$Xo-($Diametre /2),$Yo-($Diametre /2), $Diametre , $Diametre )
EndFunc
Re: [..] Une fonction qui fait des ronds ? (Pour les Matheux)
Posté : mer. 30 déc. 2009 17:43
par Kikoolol
Parfait
Mais où doit-on placer le MouseMove ?
Re: [..] Une fonction qui fait des ronds ? (Pour les Matheux)
Posté : lun. 04 janv. 2010 21:50
par Kikoolol
Personne ? :'(
Re: [..] Une fonction qui fait des ronds ? (Pour les Matheux)
Posté : mar. 05 janv. 2010 08:43
par Tlem
Au lieu d'attendre que quelqu'un vous réponde, vous devriez chercher.
Chercher signifie faire des essais (et ils peuvent êtres très nombreux).
Re: [..] Une fonction qui fait des ronds ? (Pour les Matheux)
Posté : mar. 05 janv. 2010 21:58
par Kikoolol
Je vais mettre mes scripts d'essai mais je vous garantie rien...