Disegno del triangolo usando ActionScript
Generi un metodo di abitudine MovieClip.drawTriangle() usando l'api di disegno ed invochilo su una clip di film. Potete determinare e tracciare i vertici di un triangolo dato le lunghezze di due lati e l'angolo fra loro. Ciò è un metodo migliore che specificando le lunghezze dei tre lati perché conoscendo loro le lunghezze di due lati e l'angolo determina sempre un triangolo, mentre tre lati arbitrari non possono adattare insieme per fare un triangolo. Il metodo su ordinazione del drawTriangle() accetta sei parametri: ab CA angolo rotazione x y Definisca il metodo su ordinazione del drawTriangle() su MovieClip.prototype per metterlo a disposizione di tutta la clip di film cita ad esempio: //includa la biblioteca per la matematica su ordinazione per accedere a Math.degToRad(). # includa "Math.as" MovieClip.prototype.drawTriangle = funzione (ab,
CA, angolo, rotazione, x, y) {
//convertito l'angolo fra i lati dai gradi all'angolo di radianti = Math.degToRad(angle); //convertito la rotazione del triangolo dai gradi a rotazione di radianti = Math.degToRad(rotation); //calcoli le coordinate dei punti b e del bx del c. varietà = di Math.cos(angle - rotazione) * ab; varietà da = Math.sin(angle - rotazione) * ab; varietà cx = Math.cos(-rotation) * CA; varietà = Math.sin(-rotation) cy * CA; //calcoli il centroidX di coordinate varietà del centro di massa = (cx + bx)/3 - x; varietà centroidY = (cy + by)/3 - y; //movimento verso punto a, allora disegna la linea CA, allora allinea i Cb ed infine il Ba (ab). this.moveTo(-centroidX, - centroidY); this.lineTo(cx - centroidX, cy - centroidY); this.lineTo(bx - centroidX, vicino - centroidY); this.lineTo(-centroidX, - centroidY); } Ci sono alcuni punti circa questo metodo che sopportano ulteriore discussione. Indichi la a sempre sarà il punto di rotazione, in modo da non dovete calcolarli siete coordinate. Tuttavia, i punti b e c devono essere calcolati (usando i rapporti trigonometrici di base). Definiamo il punto b all'estremità della linea ab ad angolo dell'angolo in unrotated il triangolo. Al fattore nella rotazione sottraiamo la rotazione dall'angolo. Definiamo il punto c per essere all'estremità della linea CA. In unrotated il triangolo, il punto c è sullo stesso asse di x del punto a, ma al fattore nella rotazione dovreste sottrarre la rotazione dall'angolo fra la linea il CA (ed in se, che è, naturalmente, 0). Ciò li conduce a: bx di varietà = Math.cos(angle - rotazione) * ab; varietà da = Math.sin(angle - rotazione) * ab; varietà cx = Math.cos(-rotation) * CA; varietà = Math.sin(-rotation) cy * CA; Di coordinata x del centro di massa di un triangolo è calcolato aggiungendo insieme di coordinata x dei vertici e dividendo per tre. Di coordinata y è trovato in un modo analogo. Nel nostro metodo del drawTriangle(), le coordinate di punto a sono sempre (0, 0), in modo da esso non fattore nell'equazione. Sottraiamo la x e gli input di y dal centro di massa coordina per rappresentare l'immagine riportata affatto prestabilita dall'utente: centroidX di varietà = (cx + bx)/3 - x; varietà centroidY = (cy + by)/3 - y; Qui è un esempio di come usare il metodo del drawTriangle(). Noti che ancora dovete definire la linea stile prima dell'invocazione del metodo del drawTriangle(). //tiraggio un triangolo con i lati di 100 e 200 pixel e un
angolo di 30 gradi di this.createEmptyMovieClip("triangle_mc", 1);
triangle_mc.lineStyle(1, 0x000000, 100); //uso un
un-pixel, un nero, un bordo solido triangle_mc.drawTriangle(100, 200,
30);
ciò è un articolo aggiunto da Elis Frugalo
|
|||
|