http://paulbourke.net/geometry/2circle/ résolu ce problème avec l'aide de quelques personnes ici, ce code obtenir le point d'intersection pour deux cerclesCréer une méthode pour les points d'intersection
Voici mon code d'espace de travail
|b b1 r r1 r2 d |
b1:= CircleAnimeMorph new. " CircleAnimeMorph is my new class"
b1 center: [email protected]
b1 openInWorld.
b:= CircleAnimeMorph new.
b openInWorld.
d:= b1 center dist: b center. "distance between 2 circles"
r:=b1 bounds width /2. "radius of first circle"
r1:=b bounds width/2. "radius of second Circle"
r2:=r + r1 .
(d)< (r2)
ifTrue: [| a h mid c c1 myPen h1 h2 mx my mc mc1|
a := (r squared - r1 squared + d squared)/(2 * d).
h := (r squared - a squared) sqrt.
h1:= b center y - b1 center y.
h2:= b center x - b1 center x.
mx:=a * (b center x - b1 center x)/d.
my:=a* (b center y - b1 center y)/d.
mid := ((mx)+(b1 center x) @ (b1 center y)+(my)) " calculates mid point between 2 intersecting circles (p2)"
{
mc:=(h * h1)/d.
mc1:=(h * h2)/d.
c:=(mid x + mc)@ (mid y - mc1)."Actual Intersecting points"
c1:=(mid x -mc) @ (mid y + mc1)."Actual Intersecting points"
Transcript show: (c); show: (c1); cr
}.
myPen := Pen new.
myPen color: Color red.
myPen putDotOfDiameter: 5 at: mid.
myPen putDotOfDiameter: 5 at: c1.
myPen putDotOfDiameter: 5 at: c. ].
Peut- une Aidez-moi à ces méthodes d'un, je veux en faire une méthode d'intersection qui fera tout ce quand je dis
b1 intersection:b.
devrait faire tout cela et dessiner des points de couleur aux points d'intersection
Il ressemble vous manquez quelques bases. Jetez un oeil à cette vidéo pour voir comment se développer dans pharo. http://vimeo.com/18520870 –
@Igor, bien sûr que vous vouliez mettre ce commentaire sur la question, pas sur ce post :) –
oui. mon commentaire a été adressé au sujet starter, bien sûr, pas vous :) –