Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 26-10-2005, 23:49   #1 (permalink)
>>>||<<<
 
Registriert seit: Dec 2002
Ort: München
Beiträge: 208
Punkte auf einer Geraden ermitteln

Hallo,
ich zeichne folgendermaßen eine Linie:
ActionScript:
  1. this.createEmptyMovieClip("mc_test", 1);   
  2. mc_test.lineStyle(1, 0x9EBAE1, 100);       
  3. mc_test.moveTo(200, 200);
  4. mc_test.lineTo(100, 10);

Jetzt möchte ich, dass die Linie von unten nach oben grün wird. Mein Idee war, dass ich eine grüne Linie male, genau wie die blau, und ihr dann eine Maske zuweise. Und die Maske ist ebenfalls eine Linie die von unten nach oben gemalt wird, wobei dies aber immer Schritt für Schritt passiert.
Dazu brauch ich aber Punkte auf der Gerade von unten nach oben. Weiß jemand die Formel mit der man Punkte auf einer Gerade ermitteln kann?

Oder hat jemand eine andere Idee wir man das realisieren könnte?
Viktor M. ist offline   Mit Zitat antworten
Alt 27-10-2005, 01:00   #2 (permalink)
Freizeitflasher
 
Benutzerbild von Alphanimal
 
Registriert seit: Jun 2004
Ort: Niederösterreich
Beiträge: 615
meinst du einen Farbverlauf?

da würde ich einfach viele kleine verschiedenfarbige linienstücke zeichnen.

punkt auf linie is einfach eine geradengleichung!

y = x*k + d

du kannst die farbe dann auch linear ändern...
__________________
Some Flash Worx
Alphanimal ist offline   Mit Zitat antworten
Alt 27-10-2005, 08:05   #3 (permalink)
muh
 
Benutzerbild von Janoscharlipp
 
Registriert seit: Apr 2002
Ort: Freiburg / Stuttgart
Beiträge: 4.338
Die Formel ist ungünstig, zum einen kann eine solche Gerade dann nicht vertikal sein, zum anderen ist die "Geschwindigkeit" / die Punktdichte dann von der Steigung abhängig.
Besser wäre eine Vektorgleichung:
Code:
P(t) = P(0) + t * v
In Flash entspräche das zwei Formeln:
Code:
X(t) = X0 + t * Vx
Y(t) = Y0 + t * Vy
dabei sollte t zwischen 0 und 1 liegen, zudem ist
Code:
Vx = P_ende_x - P_start_x
Vy = P_ende_y - P_start_y
und 
X0 = P_start_x
Y0 = P_start_y
__________________
»Carpe diem«, sagte der Graf. (Terry Pratchett: Ruhig Blut!)
Janoscharlipp ist offline   Mit Zitat antworten
Alt 27-10-2005, 08:23   #4 (permalink)
>>>||<<<
 
Registriert seit: Dec 2002
Ort: München
Beiträge: 208
Vielen Dank für die schnell Hilfe.

So funktioniert es genauso, wie ich es haben wollte
ActionScript:
  1. this.createEmptyMovieClip("mc_test", 1);
  2. mc_test.lineStyle(1, 0x9EBAE1, 100);
  3. mc_test.moveTo(200, 200);
  4. mc_test.lineTo(100, 10);
  5.  
  6. Vx = 100 - 200;
  7. Vy = 10 - 200;
  8. X0 = 200;
  9. Y0 = 200;
  10. t = 0;
  11.  
  12. this.onEnterFrame = function ()
  13. {
  14.     t += 0.1;
  15.  
  16.     if (t > 1)
  17.     {
  18.         delete this.onEnterFrame;
  19.     }
  20.     else
  21.     {
  22.         this.createEmptyMovieClip("mc_test2", 3);
  23.         mc_test.lineStyle(2, 0xFD6606, 100);
  24.         mc_test.moveTo(200, 200);
  25.         mc_test.lineTo(X0 + t * Vx, Y0 + t * Vy);      
  26.     }
  27.    
  28. }
Viktor M. ist offline   Mit Zitat antworten
Alt 13-09-2006, 13:40   #5 (permalink)
Neuer User
 
Registriert seit: Jun 2006
Beiträge: 41
Wie kann ich die X-Position auf der Geraden,
anhand einer vorhanden Y-Position ermitteln?

Wenn z.B. folgende Punkte die Gerade bilden:
ActionScript:
  1. startX = 286;
  2. startY = 1;
  3.  
  4. zielX = 157;
  5. zielY = 321;

Und jetzt möchte ich z.B. den X-Wert zu einem gegebenen Y-Wert 100
Jemand eine Idee?
rasterkid ist offline   Mit Zitat antworten
Alt 13-09-2006, 13:46   #6 (permalink)
Freizeitflasher
 
Benutzerbild von Alphanimal
 
Registriert seit: Jun 2004
Ort: Niederösterreich
Beiträge: 615
das ist eine einfache Geradengleichung! bzw. eine lineare funktion

k = (zielY - startY) / (zielX - startX)
d = startY - k*startX

y = k*x + d;

edit: ...jetzt hab ich die auch nich angebracht
__________________
Some Flash Worx

Geändert von Alphanimal (13-09-2006 um 21:22 Uhr)
Alphanimal 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 03:07 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele