Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 29-11-2004, 16:30   #1 (permalink)
Hobbyflasher
 
Benutzerbild von Andreus
 
Registriert seit: Apr 2003
Ort: Austria
Beiträge: 93
Kreis in FlashMX zeichnen lassen

Hallo Leute
Ich hatte gestern das Problem, dass ich mir einen Kreis zeichnen lassen wollte, bemerkte aber bald dass da mit mc.curveTo(); eher so ein stark abgerundetes Viereck als ein echter Kreis rauskam.
Hab da mal versucht was eher kreismäßigeres rauszubekommen und einfach den Kreis mehr unterteilt als nur 4mal.
Dachte mir dann vielleicht haben andere Anfänger auch ähnliche Probleme also stell ich meine function zum kreisezeichnen mal hier rein.
Einfach die Funktion circle aufrufen und die Parameter für den Anfangspunkt, Radius, Strichstärke, Strichfarbe, Strichalpha, Füllfarbe und Füllalpha übergeben und das wars.

Code:
function circle(xm, ym, rad, line_height, line_color, line_alpha, fill_color, fill_alpha){
	this.x = xm;
	this.y = ym;
	this.r = rad;
	this.lh = line_height;
	this.lc = line_color;
	this.la = line_alpha;
	this.fc = fill_color;
	this.fa = fill_alpha;
	beginFill(fc, fa);
	lineStyle(lh, lc, la);
	moveTo(x, y);
	curveTo(x+Math.sqrt(Math.pow((r/Math.cos(Math.PI/8)),2)-Math.pow(r, 2)), y, x+Math.sin(Math.PI/4)*r, y+r-Math.sin(Math.PI/4)*r);
	curveTo(x+r, y+r-Math.sqrt(Math.pow((r/Math.cos(Math.PI/8)),2)-Math.pow(r, 2)), x+r, y+r);
	curveTo(x+r, y+r+Math.sqrt(Math.pow((r/Math.cos(Math.PI/8)),2)-Math.pow(r, 2)), x+Math.sin(Math.PI/4)*r, y+r+Math.sin(Math.PI/4)*r);
	curveTo(x+Math.sqrt(Math.pow((r/Math.cos(Math.PI/8)),2)-Math.pow(r, 2)), y+2*r, x, y+2*r);
	curveTo(x-Math.sqrt(Math.pow((r/Math.cos(Math.PI/8)),2)-Math.pow(r, 2)), y+2*r, x-Math.sin(Math.PI/4)*r, y+r+Math.sin(Math.PI/4)*r);
	curveTo(x-r, y+r+Math.sqrt(Math.pow((r/Math.cos(Math.PI/8)),2)-Math.pow(r, 2)), x-r, y+r);
	curveTo(x-r, y+r-Math.sqrt(Math.pow((r/Math.cos(Math.PI/8)),2)-Math.pow(r, 2)), x-Math.sin(Math.PI/4)*r, y+r-Math.sin(Math.PI/4)*r);
	curveTo(x-Math.sqrt(Math.pow((r/Math.cos(Math.PI/8)),2)-Math.pow(r, 2)), y, x, y);
	endFill();
}
Ich bitte euch um Anregungen und Kritik.
__________________
/bin immer noch anfänger/
/versuch dies aber schnell zu ändern!/
Andreus ist offline   Mit Zitat antworten
Alt 30-11-2004, 09:55   #2 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Für den "Hausgebrauch" reicht es auch, folgendes kleines Script zu nehmen, um einen gefüllten Kreis zu zeichnen:
ActionScript:
  1. this.createEmptyMovieClip("kreis",1);
  2. this.kreis._x = 100;
  3. this.kreis._y = 100;
  4. this.kreis.lineStyle(200,0x0,100);
  5. this.kreis.moveTo(0,0);
  6. this.kreis.lineTo(0.2,0);

Der Trick dabei ist, eine ganz kurze aber dicke Linie zu zeichnen. Da Flash die Linie abrundet, sieht es wie ein Kreis aus...
  Mit Zitat antworten
Alt 10-10-2006, 13:27   #3 (permalink)
Neuer User
 
Registriert seit: Jul 2006
Ort: Stuttgart
Beiträge: 50
Irgendwas stimmt mit den Mittelpunkt nicht.
Wenn ich

moveTo(100,100);
lineTo(200,100);

und dann circle Funktion verwende mit xm=150 und ym=100 setze, und den radius klein wähle erkennt man das der kreis nicht auf dem strich liegt.


Weiss aber net ob circle nicht genau zeichnet oder LineTo, bzw moveTo
Belmondo28 ist offline   Mit Zitat antworten
Alt 10-10-2006, 13:33   #4 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.322
http://www.seibsprogrammladen.de/fra...gorithmen/Draw
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 20:45 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele