"Außenpunkte" einer Ellipse bestimmen

Nervensache

Mitglied
Hallo,

ich versuche momentan verzweifelt kleine Quadrate auf die "Außenlinie" einer Ellipse zu zeichnen, um damit einen HitTest genauer durchführen zu können
Ich hab es folgendermaßen versucht, leider funktioniert es nicht:
Code:
for (var alpha:Number=0; alpha < 360; alpha += deltaAlpha) {
	radius = height/2 + (width/2 - height/2) * Math.abs(Math.cos(2*Math.PI / 360 * alpha));
			
			
	curBox = movingAreaHitTest_mc.createEmptyMovieClip(
		"rectangleBoxNo" + movingAreaHitTest_mc.getNextHighestDepth(),
		movingAreaHitTest_mc.getNextHighestDepth()
	);


	with (curBox) {
		beginFill(0xFFFFFF, 100);
		moveTo(-10, -10);
		lineTo( 10, -10);
		lineTo( 10,  10);
		lineTo(-10,  10);
		lineTo(-10, -10);
		endFill();
	}
	

	curBox._x = Math.cos(2*Math.PI / 360 * alpha) * radius;
	curBox._y = Math.sin(2*Math.PI / 360 * alpha) * radius;
}

Die Überlegung scheint leider komplett verkehrt ;-)

Hat jemand einen besseren Vorschlag ?


Viele Grüße
Simon
 
Hi,

sieht auf den ersten Blick schon mal nicht schlecht aus. Poste bitte mal die .fla, dann kann ich Dir beim Debuggen helfen.

Gruß
.
 
Hallo,

vielen Dank schonmal. Was ich noch hätte anmerken sollen, ist, dass das Problem bei der Berechnung des Radiuses liegt.
Das durch diesen Quellcode entstehende Bild ähnelt zwei "verschmelzenden" Kreisen.

Ich häng die Fla Datei an.

Viele Grüße
SImon
 

Anhänge

  • ellipse.fla
    32 KB · Aufrufe: 35
Hi,

Dein Fehler liegt in der Radiusberechnung. Warum nimmst Du nicht einfach die Werte von width und height (wie in der gezeichneten Ellipse) als horizontalen und vertikalen Radius?
Code:
	var ang = alpha * Math.PI / 180;
	curBox._x = Math.cos(ang) * width / 2;
	curBox._y = Math.sin(ang) * height / 2;
Ergebnis:

ellipse.jpg

Gruß
.
 

Neue Beiträge

Zurück