| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| User Registriert seit: Jun 2004 Ort: Berlin
Beiträge: 70
| 3D-Körper frei drehbar in AS
hallo, ich hab mal wieder im netz eine schöne site gesehn und mich gefragt wie die das machen: http://www.beta6.com/ es sind geometrische figuren die sich frei drehen lassen! damit nicht genug, auch werden flächen und sogar schatten erzeugt!! ist das mit AS programmiert worden? wenn ja, weiß jemand wie ich mich da hinein arbeiten könnte? wo ist der ansatz, bzw wo kann ich so was lernen? sowas fasziniert mich einfach... |
| | |
| | #5 (permalink) |
| User Registriert seit: Jun 2004 Ort: Berlin
Beiträge: 70
|
Boa, ich hab mir das alles angeschaut! da ist ja in fast allen library sachen noch quellcode drin! ich hab mir gestern noch einige beispiele angeschaut, die waren alle ähnlich komplex. trotzdem muß ich sagen daß ich den sinn der ganzen zeilen nur erahnen kann :-( Ich bin noch nicht so firm mit AS, daß ich das auf anhieb verstehe. teilt man es auf, so bleiben 2 sachen: 1. wie funktioniert diese ganze koordinatentransformation im prinzip und in der theorie? 2. wie setzte ich das in flash um? gibt es tutorials für sowas? heißt das jetzt bücher lesen und beispiele anschauen, bis ichs kapiert hab? |
| | |
| | #7 (permalink) |
| User Registriert seit: Jun 2004 Ort: Berlin
Beiträge: 70
|
moin, also ich hab mich rangesetzt und mal versucht was eigenes zu schreiben. mit hilfe eines kumpels (hat mir die benötigten matrizenrechnungen erklärt) hab ich meine erste "3D-engine" :-) geschrieben. rausgekommen ist eine funtkion, die die 3d-koord berechnet und dann auf den bildschirm projeziert. mein erstes projekt war ein würfel... www.beta6.com ich komme. das ziel ist gesteckt! kann mir einer helfen was die sichtbarkeit der flächen angeht? wie setzte ich das um? |
| | |
| | #8 (permalink) |
| All-rounder Registriert seit: Mar 2004 Ort: Bayerische Rhön
Beiträge: 2.507
|
Was heißt Sichtbarkeit der Flächen? Meinst Du die Transparenz? Die Transparenz wird über die mc._alpha Eigenschaft gesteuert. Mich würden die Berechnungen auch interessieren.
__________________ -------------------------------- Ich klicke, ergo bin ich. (me) -------------------------------- Geändert von thebiz (27-06-2004 um 13:51 Uhr) |
| | |
| | #9 (permalink) |
| User Registriert seit: Jun 2004 Ort: Berlin
Beiträge: 70
|
hallo, wie man in meinem beispiel sehen, kann, hab ich da die alpha werte benutzt um die flächen einzufärben. meine frage zielt auf folgendes ab: wenn man einen körper im raum darstellen will, so muß der rechner wissen, welche fläche für den betrachter sichtbar ist, und dann nur diese zeichnen und füllen. sonst würde man ständig auch alle rückseiten der körper sehen, was aber eher verwirrt als hilft. zu den berechnungen: ich hab mal die fla mit rangehängt, empfehle aber das mal selbst durchzudenken. mal im kurzdurchlauf: -x,y,z eines punktes sind gegeben -x,y,z seines drehzentrums sind gegeben -verschiebung des drehzentrums in den betracher-koord.ursprung -gewünschte drehung des punktes berechnen -zurückverschiebung des drehpunktes -projektion der neuen x,y,z auf den bildschirm -> xs,ys das gilt aber nur so "einfach", wenn das koord.system des punktes selbst nicht verdreht. sonst müßte man zu den verschiebungen auch noch eine drehung in die betrachterachsen machen. und natürlich dann auch rückwärts, bevor man projeziert. ich weiß, daß mein code noch optimiert werden muß, denn im moment werden viele punkte mehrfach berechnet. aber wie gesagt, das ist die rohfassung... wie ist das eigentlich mit der verfügbarkeit von variablen, die nur in eigenen funktionen eingeführt wurden? da sehe ich noch nicht 100%ig durch. und kann ich aus einer funktion einen ganzen array zurückgeben? wenn ja wie? danke für das interesse und die tips... |
| | |
| | #11 (permalink) | |
| Neuer User Registriert seit: Jun 2001 Ort: Zürich
Beiträge: 1.776
| Zitat:
über die zugrunde liegende mathematik kann ich dir (fast) nichts mehr mitteilen, da ich mich mit vektorrechnung zuletzt vor gut zwanzig jahren befasst habe und kaum noch weiss, was ein kreuzprodukt ist... | |
| | |
| | #12 (permalink) |
| User Registriert seit: Jun 2004 Ort: Berlin
Beiträge: 70
|
das macht nichts, danke schonmal für deinen tipp! das ist eine vorzügliche idee!! heißt das, das zuerst die normale des zukünftigen polygons bestimmt wid? das heißt aber, das das alles mit dreiecken gemacht wird, oder? 3 punkte machen ja schon 2 vektoren für die normalenberechnung. wie ist denn das mit dem "return array" ? geht das? wär cool, dann könnte nämlich immer ein koordsatz einen punktes zurückgegeben werden aus der rotations funktion. im moment sag ich das die werte einzeln dem array zugewiesen werden das dann für weitere berechnungen ausgelesen werden muß. mal für später: wie erfährt der rechner, wenn eine fläche von einer andren fläche verdeckt wird? kann ja sein das ihre normalen zum betrachter zeigen. kann bei nur einem konkaven körper nicht auftreten, ich weiß; nur mal so zukunftsorientiert. und wie bestimme ich zweckmäßig die koord aller eckpunkte eines Ikosaeders zum beispiel? gibts da ne bildungsvorschrift? oder ist das in einem euklidschem systems unpassend? oh mann...das hört sich alles schon ziemlich fachgesimpelt an; dabei bin ich doch newb :-) das thema ist cool! |
| | |
| | #13 (permalink) |
| hmmmmm... Registriert seit: Feb 2004 Ort: deutschland
Beiträge: 112
|
hi, das thema ist echt cool... hab mich vor kurzem auch damit beschaeftigt im rahmen einer hausarbeit. das hoert sich ja schon echt krass an wie du darueber sprichst. ich habe das allerdings nicht so kompliziert umgesetzt, wie es sich bei dir anhoert. hier ist die 3dengine die ich mal gebastelt habe. cubenetique (zugegeben, die seite drumrum ist nicht der brueller, aber im geschenke einpacken war ich auch noch nie gut) falls interesse besteht kann ich den sourcecode gerne mal posten, muesste ihn aber erst raussuchen, deshalb ist er nicht schon jetzt dabei... gruss und weiter so kenichi |
| | |
| | #14 (permalink) |
| User Registriert seit: Jun 2004 Ort: Berlin
Beiträge: 70
|
hallo kenichi !, das ist genau so etwas wie ich schreiben wollte! es wär super wenn du den code mal posten könntest! würd mich interessieren, wie du "vektorrechnung und Matrizen weitestgehend rausgelassen" hast! wie hast du das mit den flächen gemacht? woher weiß dein programm die farbe? aus der nomale, oder einem z-wert durchschnitt? das interessiert mich brennend! kennst du übrigens eine bildungsvorschrift für platonische körper? das ist ja krass, bin gespannt auf den code! hoffentlich kann ich den verstehen... |
| | |
| | #15 (permalink) |
| hmmmmm... Registriert seit: Feb 2004 Ort: deutschland
Beiträge: 112
|
hi, also, im prinzip ist da vektorrechnung und matrizenrechnung mit drin. allerdings habe ich das nicht in der form implementiert, wie es in "richtigen" engines der fall ist. zur engine selbst: grundsaetzlich ist sie variabel/anpassbar angelegt. will heissen, es gibt eine render funktion an die man objekte uebergeben kann. diese render funktion schaut um was fuer ein objekt es sich handelt und behandelt es dementsprechend (bisher ist allerdings nur der wuerfel implementiert). der code sollte einfach zu lesen sein, da er wie ich denke und hoffe ausreichend kommentiert ist, so dass jeder der sich einigermassen mit AS auskennt da durchsteigen kann. er besteht aus mehreren einzelnen .as dateien, sozusagen die bibliotheken. ich hoffe dass die engine hier etwas anklang findet und auch weiter entwickelt wird. das waere das coolste ueberaupt. aber dir zunaechst viel spass damit. ich hoffe, dass du da wenigstens etwas draus machst. eines noch zur info: es gibt eine variable (my_cube._full_render), die zum Cube-Objekt gehoert. wenn diese variable auf "true" gesetzt wird, dann werden, wie in meinem beispiel, alle flaechen gerendert. wenn sie auf "false" steht, werden nur die sichtbaren flaechen gerendert. so, denn mal viel spass. gruss, kenichi Geändert von kenichi (27-06-2004 um 21:16 Uhr) |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |