• beyond tellerrand – play. Register Now!
Zurück   Flashforum > Flash > Flash Fortgeschritten > Flash 4 und Flash 5

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 27-01-2003, 23:21   #1 (permalink)
Neuer User
 
Registriert seit: Jul 2002
Beiträge: 20
3D Pyramide erstellen

Wie kann ich in Flash eine 3D Pyramide erstellen, die ich auch im Film um 360 drehen und neigen kann? Ich habe bis nun noch keine vernünftige Antworten bekommen in anderen Foren!

Vielleicht kann man mir hier weiter helfen!

Greetz RedFox
RedFox ist offline   Mit Zitat antworten
Alt 27-01-2003, 23:24   #2 (permalink)
Trainman
 
Benutzerbild von Hamster2k
 
Registriert seit: Sep 2001
Ort: Wien, Österreich
Beiträge: 1.324
3d Engine programmieren anders gehts nicht.
IS aber n Haufen Arbeit.
MfG
__________________
So much to learn and so little time.

Ich liebe dieses Forum!!
Hamster2k ist offline   Mit Zitat antworten
Alt 27-01-2003, 23:59   #3 (permalink)
Level up
 
Benutzerbild von Alois
 
Registriert seit: Jun 2001
Ort: Bocholt
Beiträge: 4.155
Zitat:
Geschrieben von Hamster2k
3d Engine programmieren anders gehts nicht.
IS aber n Haufen Arbeit.
MfG
ach wenn man es einmal gemacht hat, dann ist es wirklich nicht mehr schwierig:
ActionScript:
  1. movieclip.prototype.d3tod2 = function(x3d, y3d, z3d, lookatz) {
  2.         z2d = Math.sqrt(x3d*x3d+y3d*y3d+z3d*z3d);
  3.         //z3d; Math.sqrt(x3d*x3d+y3d*y3d+z3d*z3d);
  4.         scale2d = 100*lookatz/z2d;
  5.         if (z2d>0) {
  6.                 x2d = x3d/z2d*lookatz;
  7.                 y2d = y3d/z2d*lookatz;
  8.         }
  9. };
  10. x=new Array(-10,10,10,-10,0);
  11. y=new Array(10,10,-10,-10,0);
  12. z=new Array(0,0,0,0,10);
  13. //farben
  14. farbe=new Array("0xff0000","0x00ff00","0x0000ff","0xFFFF00");
  15. //diese Punktkombinationen ergeben eine Fläche
  16. shape=new Array("0_1_4","1_2_4","2_3_4","3_0_4");
  17. //Kantenlänge (100px) liegt in der variable a
  18. a=100;
  19.  
  20.  
  21. punkte = z.length-1;
  22. anzahl = shape.length-1;
  23. //Erstellung der movieclips...Schaltfächen
  24. for (i=0; i<=anzahl; i++) {
  25.         shape[i] = shape[i].split("_");
  26.         _root.createEmptyMovieClip("flaeche" add i, i);
  27.         //Definition als Schaltfäche
  28.         _root["flaeche"add i].hitArea();
  29.         //Vorbereitung für Testaktion; kann später gelöscht werden
  30.         _root["flaeche"add i].i=i;
  31.         //Schaltflächenaktion
  32.         _root["flaeche"add i].onRelease = function() {
  33.                 //hier die Aktionen entsprechend einbinden!!!
  34.                 trace(this.i);
  35.         }
  36. }
  37. winkelx = 0;
  38. winkely = 0;
  39. _root.onEnterFrame = function() {
  40.         winkelx = (_root._ymouse-200)/10;
  41.         winkely = (_root._xmouse-275)/10;
  42.         for (i=0; i<=punkte; i++) {
  43.                 // x-rotation
  44.                 radius = Math.sqrt(y[i]*y[i]+z[i]*z[i]);
  45.                 rot = Math.atan(y[i]/z[i]);
  46.                 if (y[i] == 0 and z[i] == 0) {
  47.                         rot = 0;
  48.                 }
  49.                 if (z[i]<0) {
  50.                         rot = rot+Math.PI;
  51.                 }
  52.                 rot = rot+winkelx/360*2*Math.PI;
  53.                 yx = radius*Math.sin(rot);
  54.                 zx = radius*Math.cos(rot);
  55.                 // y-rotation
  56.                 radius = Math.sqrt(x[i]*x[i]+zx*zx);
  57.                 alpha = Math.atan(x[i]/zx);
  58.                 if (x[i] == 0 and zx == 0) {
  59.                         alpha = 0;
  60.                 }
  61.                 if (zx<0) {
  62.                         alpha = alpha+Math.PI;
  63.                 }
  64.                 alpha = alpha+winkely/360*2*Math.PI;
  65.                 x[i] = radius*Math.sin(alpha);
  66.                 z[i] = radius*Math.cos(alpha);
  67.                 y[i] = yx;
  68.         }
  69.         for (i=0; i<=anzahl; i++) {
  70.                 depths = 0;
  71.                 for (j=0; j<shape[i].length; j++) {
  72.                         num = shape[i][j];
  73.                         d3tod2(x[num], y[num], Number(z[num])+4, 100);
  74.                         set("px" add j, x2d+275);
  75.                         set("py" add j, y2d+200);
  76.                         depths = depths+10000-z2d;
  77.                 }
  78.                 with (_root["flaeche" add i]) {
  79.                         clear();
  80.                         lineStyle(1, 0x000000, 100);
  81.                         beginFill(farbe[i]);
  82.                         moveTo(px0, py0);
  83.                        
  84.                         for (j=1; j<shape[i].length; j++) {
  85.                                 lineTo(eval("px" add j), eval("py" add j));
  86.                         }
  87.                         depths = depths/shape[i].length;
  88.                         endFill();
  89.                        
  90.                         swapDepths(depths*1000+i);
  91.                 }
  92.         }
  93. };

Gruß

Alois
__________________
-Spuckt mir auf den Stuhl, ich will im Grünen sitzen-
Alois ist offline   Mit Zitat antworten
Alt 28-01-2003, 00:05   #4 (permalink)
_//\\#//\\_
 
Benutzerbild von warrantmaster
 
Registriert seit: Jan 2003
Beiträge: 7.060
@alois

..............der war echt elegant................!!!!


(ich halte mir gerade den bauch vor lachen...!)

ok...daß mir angesichts des scriptes schwindelig wird, das verrate ich nicht
warrantmaster ist offline   Mit Zitat antworten
Alt 28-01-2003, 02:18   #5 (permalink)
Neuer User
 
Benutzerbild von maxxy
 
Registriert seit: Oct 2002
Ort: Köln
Beiträge: 198
hut ab, ist ganz schön fett die pyramide. werde mich das nächste mal erinnern wenn ich was ähnlich 3-dimensionales brauche :-)

maxxy

[ http://www.mach-parat.de - flashbased game design ]
maxxy ist offline   Mit Zitat antworten
Alt 28-01-2003, 21:22   #6 (permalink)
Neuer User
 
Benutzerbild von Aphex
 
Registriert seit: Jul 2002
Ort: Nähe Köln
Beiträge: 530
Ich sag nur noch: Wahnsinn
__________________
Der Tod ist nur eine Illusion.
Aphex ist offline   Mit Zitat antworten
Alt 29-01-2003, 12:25   #7 (permalink)
Mit ohne "F"
 
Benutzerbild von slashmaster
 
Registriert seit: Nov 2002
Ort: Dresden
Beiträge: 1.051
ich schließ mich mal an! *mund nich mehr zu bekomm*
__________________
Gruß Markus!

ActionScript:
  1. /*Kreativität entsteht durch
  2. Bewegung, Zerlegung alter Regeln
  3. und neuen Überlegungen*/
slashmaster ist offline   Mit Zitat antworten
Alt 18-02-2010, 12:04   #8 (permalink)
Neuer User
 
Registriert seit: Apr 2008
Beiträge: 12
Hallo, ich war auch ewig auf der Suche nach einer ähnlichen Pyramide.
Leider gibt er mir in Flash folgende Fehler aus:

In folgender Zeile:


_root.createEmptyMovieClip("flaeche" add i, i);

')' oder ',' erwartet


und:

_root["flaeche"add i].hitArea();

']' erwartet


Habt Ihr da ne Idee?

Liebe Grüße und vielen Dank!
re84 ist offline   Mit Zitat antworten
Alt 18-02-2010, 12:33   #9 (permalink)
Fohlen-Power
 
Benutzerbild von enky
 
Registriert seit: Mar 2007
Beiträge: 1.205
Na da liegt an der Syntax, da musste schon was runtergehen beim Export damit es geht. FP6 AS2
__________________
Vielen Dank für euer Verständnis für einen Flash Noob !!!
enky ist offline   Mit Zitat antworten
Alt 18-02-2010, 12:40   #10 (permalink)
Neuer User
 
Registriert seit: Apr 2008
Beiträge: 12
Mille Gracie, hat funktioniert!
Vielen Dank.
Was für ein schneller Service!
re84 ist offline   Mit Zitat antworten
Alt 24-02-2010, 18:44   #11 (permalink)
Linksaußen
 
Benutzerbild von Fralle
 
Registriert seit: Jun 2003
Ort: Essen
Beiträge: 550
...der Thread ist ja auch erst 7 Jahre alt
__________________
Der Ball ist rund
Fralle ist offline   Mit Zitat antworten
Alt 24-02-2010, 20:13   #12 (permalink)
Neuer User
 
Registriert seit: Apr 2008
Beiträge: 12
Ja muss leider für einen Kunden eine Pyramide als Menu bauen. Muss mal schauen, wie ich es hinbekomme, dass diese sich nur seitlich dreht.... mal schauen...
7 Jahre und immernoch aktuell....
re84 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 22:01 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele