Zeichnen eines Kreises mit ActionScript

Dutch French Spanish Portuguese Italian German Japanese Chinese Korean Russian Arabic Bookmark and Share this Article Original English article
  

Verursachen Sie eine Gewohnheit MovieClip.drawCircle() Methode mit der zeichnenden API und rufen Sie sie auf einem Filmclip hervor.

Sie können einen Kreis in ActionScript mit acht Kurven verursachen. Wenige Kurven ergibt einen verzerrten Kreis und zu viele Kurven hindert Leistung. Lassen Sie uns eine kundenspezifische Methode der MovieClip Kategorie für das Zeichnen der Kreise verursachen. Diese Methode, drawCircle(), läßt drei Parameter zu:

Radius
Der Radius des Kreises

x
Die x Koordinate des Mittelpunkts des Kreises. Wenn er undefined, wird der Kreis an x = 0 zentriert.

y
Die y Koordinate des Mittelpunkts des Kreises. Wenn er undefined, wird der Kreis an y = 0 zentriert.

Definieren Sie die kundenspezifische drawCircle() Methode auf MovieClip.prototype, um es zu machen zugänglich für allen Filmclip instances:

MovieClip.prototype.drawCircle = Funktion (Radius, x, y), 
ist {// der Winkel von jedem der acht Segmente 45 Grad (360 teilten 
sich durch 8), das// angleDelta var Einheitswinkel der 
Gleichgestellten p/4 = Math.PI/4;
 //Entdeckung der Abstand von der Mitte des Kreises zu den 
Abfertigungsschaltern für das Kurven var ctrlDist = 
radius/Math.cos(angleDelta/2);
 //initialisieren Sie den Winkel bis 0 und definieren Sie 
lokale Variablen, die für// Steuer- und Endepunkte var Winkel = 0 
verwendet werden; var rx, Relais, Axt, ay;
 //Bewegung zum Ausgangspunkt, ein Radius auf der rechten 
Seite der Mitte des Kreises this.moveTo(x + Radius, y);
 //Wiederholung achtmal, acht Segmente für zu verursachen 
(var I = 0; I < 8; i++) {
 //Stufensprung der Winkel durch das angleDelta 
(p/4) zum des vollständigen Kreises (2p) zu verursachen. Winkel
+ = angleDelta;
 //die Abfertigungsschalter werden mit Sinus und Kosinus 
abgeleitet. rx = x + Math.cos(angle-(angleDelta/2))*(ctrlDist); 
Relais = y + Math.sin(angle-(angleDelta/2))*(ctrlDist);
 //die Ankerpunkte (Ende Punkte der Kurve) kann zu// zu den
Abfertigungsschaltern ähnlich gefunden werden. Axt = x + 
Math.cos(angle)*radius; ay = y + Math.sin(angle)*radius;
 //abgehobener Betrag das Segment this.curveTo(rx, Relais, 
Axt, ay); }}

Wie die drawCircle() Methode Funktionen besser mit einer wenig Erklärung verstanden wird.

Der Abstand des Abfertigungsschalters für jedes Segment von der Mitte des Kreises wird gefunden, eine trigonometrische diese Formel zu verwenden Zustände, daß der Kosinus eines Winkels der angrenzenden Seite über der Hypothenuse gleich ist. Im Fall vom Kreis, ist der Winkel, der halbiert, ein Segment (folglich seinen Abfertigungsschalter auch schneiden) p/8 (angleDelta/2). Der Abstand zum Abfertigungsschalter von der Mitte des Kreises bildet die Hypothenuse des rechten Dreiecks.

var ctrlDist = radius/Math.cos(angleDelta/2);

Grundlegende trigonometrische Formeln können verwendet werden, um die x und y Koordinaten entlang dem Umkreis des Kreises zu finden, der den Winkel und die Hypothenuse gegeben wird. Für den Abfertigungsschalter ist der Hypothenusewert ctrlDist, und der Winkel ist Winkel - angleDelta/2, da dieser Winkel das Segment halbiert. Der Ankerpunkt wird gefunden, den Wert des Winkels, der, um errechnet wird der Winkel zu sein, der den Ankerpunkt schneidet, und des Radius des Kreises zu verwenden (da der Ankerpunkt auf dem Umkreis des Kreises immer sein sollte). So folgt er:

rx = x + Math.cos(angle-(angleDelta/2))*(ctrlDist); 
Relais = y + Math.sin(angle-(angleDelta/2))*(ctrlDist); 
Axt = x + Math.cos(angle)*radius; ay = y + 
Math.sin(angle)*radius;

Sobald Sie die drawCircle() Methode definiert und sie in Ihrem grellen Dokument eingeschlossen haben, können Sie einen Kreis mit gerade einigen Linien des Codes schnell zeichnen. Erinnern Sie daran, daß Sie noch eine Linie Art definieren müssen, bevor Blitz alles zeichnet.

//verursachen Sie einen Filmclipfall, in dem Sie den Kreis
this.createEmptyMovieClip("circle_mc" zeichnen, 1);
//definieren Sie ein 1-pixel, Schwarzes, Vollinienart 
circle_mc.lineStyle(1, 0x000000, 100);
//abgehobener Betrag ein Kreis von Radius 100, zentriert 
an (50.75). circle_mc.drawCircle(100, 50, 75); 
//abgehobener Betrag ein Kreis von Radius 65, zentriert an 
(0.0). circle_mc.drawCircle(65);

Sie können einen Kreis füllen, indem Sie beginFill() oder beginGradientFill() vor drawCircle() hervorrufen und endFill() nach drawCircle() hervorrufen:

this.createEmptyMovieClip("circle_mc", 1); 
circle_mc.lineStyle(1, 0x000000, 100); //Gebrauch ein 
1-pixel, Schwarzes, fester Rand circle_mc.beginFill(0x0000FF); 
//Gebrauch eine feste blaue Fülle circle_mc.drawCircle(100); 
circle_mc.endFill();
 
dieses ist ein Artikel, der von Elis Frugalo hinzugefügt wird


Verzicht: Unsere Web site ist nicht zu der Information verantwortlich, die durch diesen Artikel enthalten wird. Dieser Artikel reflektiert keineswegs die Ansichten, die Meinungen, die Gedanken oder den Glauben des Artikelverzeichnisstabes.

Übersetzung Nachricht: Der Artikel ", der einen Kreis verwendet ActionScript" zeichnet, wurde mit einem automatisierten Übersetzungsdienst übersetzt. Wir entschuldigen herzlichst uns für alle mögliche Übersetzung Störungen, die auftraten. Danke für das Verstehen.


Online: 1694 users browsing the articles directory