Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 04-03-2004, 09:08   #1 (permalink)
Neuer User
 
Registriert seit: Feb 2003
Beiträge: 89
schon wieder ein kreisproblem!

hallo in die runde,

um AS etwas auf den grund zu gehen, hab ich mich mal mit dem kreis beschäftigt. da gibt es ja hier schon recht viele beiträge dazu. ein recht einfaches beispiel zur demonstration ist folgendes:
ActionScript:
  1. MovieClip.prototype.drawCircle = function(startX, startY, breite, hoehe, liniendicke, linienfarbe,
  2. fuellfarbe, alpha, sector) {
  3.         this.beginFill(fuellfarbe,alpha)
  4.         this.moveTo(startX, startY);
  5.         this.lineStyle(liniendicke, linienfarbe, alpha);
  6.         for(var i=0;i<=sector;i++)
  7.             this.lineTo((Math.sin(i*Math.PI/180)*breite)+startX, (Math.cos(i*Math.PI/180)*hoehe)+startY);
  8.         this.endFill();
  9. };
  10. drawCircle(100,100,200,200,1,0xff0000,0x0000ff,100,180);
nun sind mir mehrere sachen nicht ganz klar:
1. mit cosinus und sinus wird der kreis berechnet, in dem die variable i immer wieder bis zur variable sektor hochgesetzt wird. jetzt hab ich spassenshalber mal die werte selbst gesetzt und komme auf zahlen wie 1.22460635382238e-14 wenn ich eingebe:
ActionScript:
  1. this.lineTo=((Math.sin(90*Math.PI/180)*200), (Math.cos(90*Math.PI/180)*200));
  2. trace(lineTo);
warum ist das hier nur ein wert und was bedeutet die zahl?

2. wenn ich es recht verstehe, werden immer kleine abschnitte aneinandergelegt, die am ende ein kreissegment (je nach vorgabe) ergeben. was legt aber fest, dass das segment am ende mit einer linie geschlossen wird?

3. definiere ich mit dieser formel einen halbkreis, ist er senkrecht ausgerichtet. was legt hier fest, dass er nicht waagerecht ist? hab mir dann mit folgender formel geholfen:
ActionScript:
  1. MovieClip.prototype.drawHCircle = function(startX, startY, breite, hoehe, liniendicke, linienfarbe,
  2. fuellfarbe, alpha, sector) {
  3.         this.beginFill(fuellfarbe,alpha)
  4.         this.moveTo(startX, startY);
  5.         this.lineStyle(liniendicke, linienfarbe, alpha);
  6.         for(var i=-90;i<=sector-90;i++)
  7.             this.lineTo((Math.sin(i*Math.PI/180)*breite)+startX+breite, (Math.cos(i*Math.PI/180)*hoehe)+startY);
  8.         this.endFill();
  9. };
  10. drawCircle(100,100,100,100,1,0x000000,0xFFFFFF,100,180);
4. bei mir wird der kreis nicht richtig rund. jeweils in der horizontalen gibt es am kreisrand eine ausbuchtung (wenn man breite und höhe auf 250 setzt, sieht man es besser.

vielleicht kann ja der eine oder andere eine antwort zu meinen fragen beisteuern - vielen dank
oops ist offline   Mit Zitat antworten
Alt 04-03-2004, 11:59   #2 (permalink)
hmmmmm...
 
Benutzerbild von kenichi
 
Registriert seit: Feb 2004
Ort: deutschland
Beiträge: 112
hi,
zu der frage, warum du bei dieser rechnung:
ActionScript:
  1. this.lineTo=((Math.sin(90*Math.PI/180)*200), (Math.cos(90*Math.PI/180)*200));
  2. trace(lineTo);
kann ich nur sagen, das du halt nur einen wert berechnest, also kommt auch nur einer raus....
in der for schleife werden so an die 180 oder mehr werte berechnet, je nachdem wie gross du "sector" waehlst...

zu deinem anderen problem kann ich jetzt auch nicht so viel sagen, weil ich mich auch noch nicht so stark damit auseinandergesetzt habe. vielleicht mach ich das ja mal?!

auf einer macromedia seite habe ich allerdings mal was sehr geiles zu zeichenmethoden gefunden, unter anderem zu einem kreis bzw. bogen (arc).
anbei einmal die .fla mit .as als .rar. ist von diesem menschen der das gemacht hat sehr umfangreich kommentiert, vielleicht hilft dir das ja weiter.

gruss,
kenichi
kenichi ist offline   Mit Zitat antworten
Alt 04-03-2004, 12:00   #3 (permalink)
hmmmmm...
 
Benutzerbild von kenichi
 
Registriert seit: Feb 2004
Ort: deutschland
Beiträge: 112
sorry, hab die datei vergessen...
Angehängte Dateien
Dateityp: rar drawmethods.rar (39,3 KB, 10x aufgerufen)
kenichi ist offline   Mit Zitat antworten
Alt 04-03-2004, 12:11   #4 (permalink)
Neuer User
 
Registriert seit: Feb 2003
Beiträge: 89
danke kenichi,

bin schon dabei die arbeit von Ric Ewing zu studieren. ist sehr interessant.

was mir allerdings noch fehlt, ist ein umfangreiches manual zu Flash AS. die hilfe in Flash MX ist leider nicht sehr aussagekräftig, es fehlen viele begriffe und erläuterungen.

kann denn jemand ein gutes buch empfehlen?
oder noch besser: gibt es ein online-manual oder eine seite wie z.b. php.net, wo auch die nutzer mit praktischen beispielen die einzelnen funktionen kommentieren?

danke
oops ist offline   Mit Zitat antworten
Alt 04-03-2004, 13:01   #5 (permalink)
hmmmmm...
 
Benutzerbild von kenichi
 
Registriert seit: Feb 2004
Ort: deutschland
Beiträge: 112
hi,
ansich muesste auf deiner flash cd eine actionscript referenz sein, aber es gibt auch noch ein online manuals und references...
eine die ich grad spontan ergoogled habe:
http://www.actionscript.com/
dort gibt es einen menue punkt "Reference" und dann "Full ActionScript Entry Listing".
vielleicht findest du da ja was du brauchst...

gruss,
kenichi
kenichi ist offline   Mit Zitat antworten
Alt 04-03-2004, 13:05   #6 (permalink)
hmmmmm...
 
Benutzerbild von kenichi
 
Registriert seit: Feb 2004
Ort: deutschland
Beiträge: 112
hab auch noch das hier gefunden...
scheint sehr gut zu sein.
ActionScript Dictionary Overview

nochmal gruss,
kenichi
kenichi ist offline   Mit Zitat antworten
Alt 04-03-2004, 14:37   #7 (permalink)
Neuer User
 
Registriert seit: Feb 2003
Beiträge: 89
hi Kenichi,

ja, manchmal vergißt man schon, dass es noch so was wie google gibt. bei der flut von einträgen bin ich oft des suchens müde.

vielen dank für die links!!
oops ist offline   Mit Zitat antworten
Alt 04-03-2004, 16:05   #8 (permalink)
Neuer User
 
Registriert seit: Feb 2003
Beiträge: 89
hallo nochmal,

was mich im zusammenhang mit diesem problem besonders interessieren würde, ist, warum am anfang eines kreises eine linie zur mitte hin gezeichnet wird, am ende jedoch nicht.

eigentlich brauche ich nur verschiedene kreisbögen, die sozusagen um einen mittelpunkt frei schweben sollen. da stört halt die linie dorthin.

aus dem skript kann ich aber nicht nachvollziehen, warum am anfang eine linie gezogen wird und am ende nicht:
ActionScript:
  1. MovieClip.prototype.drawCircle = function(startX, startY, breite, hoehe, liniendicke, linienfarbe, alpha, sector) {
  2.         this.moveTo(startX, startY);
  3.         this.lineStyle(liniendicke, linienfarbe, alpha);
  4.         for(var i=-90;i<=sector-90;i++)
  5.             this.lineTo((Math.sin(i*Math.PI/180)*breite)+startX, (Math.cos(i*Math.PI/180)*hoehe)+startY);
  6. };
  7. drawCircle (0,0,250,250,1,0xFF0000,100,360);
hat dazu jemand eine lösung?

vielen dank!
oops ist offline   Mit Zitat antworten
Alt 04-03-2004, 16:21   #9 (permalink)
Neuer User
 
Registriert seit: Feb 2003
Beiträge: 89
ok, problem erkannt und gelöst.

natürlich ist moveTo für den mittelpunkt-strich verantwortlich. nehme ich den am ende von lineTo wieder weg, klappt es.

schönen abend noch!
oops 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 04:22 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele