Punktermittlung in 3d
Übersicht

Steve0Betreff: Punktermittlung in 3d |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Also mein Problem is ich bin erst in der 9. Klasse und für 3d brauch bestimmte Kenntnisse die ich noch nicht hab.
Ich hab einen Punkt (beispelsweise A) der sich in einem bestimmten Abstand um einen zweiten Punkt M drehen sollUnd zwar 3D. Im Grund ist das das "gleiche" wie in 2d eine Berechnung mit Sin u. Cos(=Kreis). Code: [AUSKLAPPEN] For winkel=0 To 359
x=Mittelpunkts_x_Koordinate-Cos(winkel)*abstand y=Mittelpunkts_y_Koordinate-Sin(winkel)*abstand Plot x,y next bloß in 3D auf 3-Achsen (=Kugel). Ich hoffe ihr könnt mir helfen schon mal Danke im Voraus. Falls ich was unzureichend erklärt habe (ich bin auch nur ein Programmierer) bitte noch mal nachfragen. Falls ich was falsch im Code hab bitte verbessern. Danke. |
||
![]() |
Wild-Storm |
![]() Antworten mit Zitat ![]() |
---|---|---|
mach das so:
Code: [AUSKLAPPEN] piv = createpivot() a = createsphere(piv) mobveentity a,0,0,1 repeat turnentity piv,1,0,0 ;updates etc. until keydown(1) also, du erstellst ein pivot, machst die sphere abhängig zum pivot, bewegst die kugel ein wenig weg und drehst dann das pivot, probiers mal aus |
||
Visit http://www.next-dimension.org
------------------------------------------------- Freeware Modelle, Texturen & Sounds: http://www.blitzforum.de/forum...hp?t=12875 |
Steve0 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Neee.
Tschuldigung ich hab das ganz anders gemeint. (Sonst wär das ja viel zu einfach) ![]() Ich will die Koordinaten von einem Punkt auf der gedachten Kugel um den Mittlepunkt (z.b. ein Cube) Um das zu errechnen hab ich: -den Abstand von dem Mittelpunkt zum Punkt auf der Kugel (der Abstand is konstant) -die Koordinaten des Mittlepunktes -(einen oder mehrere Winkel falls das damit geht) Falls noch was unklar bitte schreiben. |
||
![]() |
Wild-Storm |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zitat: Ich will die Koordinaten von einem Punkt auf der gedachten Kugel um den Mittlepunkt (z.b. ein Cube) versteh ich nich so ganz. vllt machst du ne zeichnung=) |
||
Visit http://www.next-dimension.org
------------------------------------------------- Freeware Modelle, Texturen & Sounds: http://www.blitzforum.de/forum...hp?t=12875 |
Steve0 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Zeichnung is net schwer aber wie mach ich die ins Internet?
Also nochmal ganz langsam. 2D: -Ich kann die Koordianten eines Punktes mithilfe eines Winkels, dem Abstand (=Radius) und dem Mittelpunkt berechnen (wie oben im code). (Im Code oben entsteht ein Kreis.=Deswegen Kugel) Ich wills aber 3D auf allen 3-Achsen. |
||
![]() |
Wild-Storm |
![]() Antworten mit Zitat ![]() |
---|---|---|
axo.
wieso denn dann nicht einfach entityx() entityy() entityz()? =) oder hab ich wieder was falsch verstanden |
||
Visit http://www.next-dimension.org
------------------------------------------------- Freeware Modelle, Texturen & Sounds: http://www.blitzforum.de/forum...hp?t=12875 |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
in 3D brauchst du 2 winkel. Es müsste hier noch ein Thread diesbezüglich sein von ShadowTurtle wo du die Formeln findest. | ||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
Steve0 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Wahrscheinlich hab ich keine so guten Erklärungskünste ![]() ![]() Was nu? |
||
![]() |
Wild-Storm |
![]() Antworten mit Zitat ![]() |
---|---|---|
www.blitzpasting.de.vu | ||
Visit http://www.next-dimension.org
------------------------------------------------- Freeware Modelle, Texturen & Sounds: http://www.blitzforum.de/forum...hp?t=12875 |
Steve0 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Tschuldigung hab den Thread von Dreamora nicht gesehen.
Ähm habs schon mal ausprobiert aber da kann ich bloss in 2 Ebenen mein (z.b. Mesh) um den Mittelpunkt drehen. Das heißt 1. x-y 2. x-z. Trotzdem danke ich werd mal nach dem Thread von ShadowTurtle suchen. zu Wild-storm: Danke mal schaun ob ichs schaff. Kann weng dauern. |
||
Darren |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
willkommen im club ich bin auch erst in der 9.klasse......
die andren typen kann unsre probs garnet he die ham den ganzen mathescheiß ja shcon in der schule gehabt die könn des garnet beurteilen... hey und du wphnst ja auch gleich bie mir um die ecke ich wohn in coburch*g* naja egal hast du ICQ ich würde dich gerne mal was fragen...... by Darren |
||
Steve0 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
also habs ma versucht.
http://www.blitz-pasting.de.vu...chnung.jpg Falls link net geht geht ihr bitte auf uploads und dann auf punktberechnung.jpg |
||
Steve0 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Zu DarrenSharm: Leider hab ich kein ICQ muss mich ma anmelden. Ich bin in der Realschule. Zurzeit machen wir Flächenberechnungen von Dreiecken mit hilfe von Vektoren is ziemlich einfach. Übermorgen schreiben wir Schulaufgabe. Zitter Zitter. In ner Stegreifarbeit hab ich aber scho ne 2 ![]() |
||
Darren |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
naja unser mathelehrer is so ziehmlich des beschissenste was es so auf der welt gibt abba ich bin auch ned schlechd in mathe immer so 1-2 ja okay lad dir mal icq!!! kann ich vlt mal dein mail adresse haben???? achja und zu deim prob.....
naja du musst das gleiche wie in 3d machn nur mit einer achse mehr is doch ganz easy ich habs zwar nicht getestet aber ich denke das müsste gehen(hab mich noch fast nicht mit sinusfunktionen auseinandergesetzt) ![]() ![]() ![]() by Darren[/url] |
||
![]() |
Thoem |
![]() Antworten mit Zitat ![]() |
---|---|---|
Meinst Du etwas in der Art:
Code: [AUSKLAPPEN] Graphics 800,600,32,2 SetBuffer BackBuffer() Dim px#(10),py#(10),pz#(10) ; punkte erzeugen px(0)=-10 : py(0)=-10 : pz(0)=0 px(1)=-10 : py(1)= 10 : pz(1)=0 px(2)= 10 : py(2)= 10 : pz(2)=0 px(3)= 10 : py(3)=-10 : pz(3)=0 gh=GraphicsHeight()/2 ; für Projektion gw=GraphicsWidth()/2 v#=1 ; drehschritte Repeat Cls For i=0 To 3 ; drehung x-achse x#=px(i) y#=(py(i)*Cos(v))-(pz(i)*Sin(v)) z#=(py(i)*Sin(v))+(pz(i)*Cos(v)) px(i)=x py(i)=y pz(i)=z ; drehung y-achse x#=(px(i)*Cos(v))+(pz(i)*Sin(v)) y#=py(i) z#=(-px(i)*Sin(v))+(pz(i)*Cos(v)) px(i)=x py(i)=y pz(i)=z ; drehung z-achse x#=(px(i)*Cos(v))-(py(i)*Sin(v)) y#=(px(i)*Sin(v))+(py(i)*Cos(v)) z#=pz(i) px(i)=x py(i)=y pz(i)=z Next For i=0 To 3 Color 255,255,0 Plot gw+(px(i)*10),gh+(py(i)*10) ; projektion Next Flip() Until KeyHit(1) End Jaja, der Code ist vielleicht nicht ganz optimal. Er verwendet aber anschaulich die Drehung eines Punktes im 3D-Raum unter zuhilfenahme von Rotationsmatritzen. Wobei es aber wesentlich einfacher ist, einen Pivot um einen Pivot zu rotieren, und mit EntityX(),EntityY(), EntityZ() seine Koordinaten nach der Drehung zu erfragen... |
||
Thoem... |
- Zuletzt bearbeitet von Thoem am Mi, Okt 27, 2004 19:47, insgesamt einmal bearbeitet
Darren |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
kann schon sein | ||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
alpha = Rotationswinkel um Y-Achse also Rotation in der Grundebene
beta = Rotationswinkel bezüglich der Grundebene also XZ-Ebene X = OrigX + Radius * cos( alpha ) * cos( beta ) Y = OrigY + Radius * sin( beta ) Z = OrigZ + Radius * sin( alpha ) * cos( beta ) dabei ist X aus blickrichtung nach rechts, Z in die tiefe und Y nach oben |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
- Zuletzt bearbeitet von Dreamora am Mi, Okt 27, 2004 20:08, insgesamt einmal bearbeitet
Steve0 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Zu Thoem: Ich wollte das ganze so wie du´s hast aber in 3D. Ich hab beim überfliegen deines Codes gesehen, anhand der gelben Textstücke, das du die Achsen drehst. Also falls jemand auf die Idee kommt das ganze genau so in 3D zu machen (mit Achsen drehen) dann sehe ich das nicht als Lösung meines Problems an, weil ich ja sonst (denke ich jedenfalls) die ganze Szenerie mitdrehen muss.
Zu DarrenSharm: Ich habs schon mal ausprobiert (ihr dürft nicht denken das ich wie die meisten anderen bin, ich probier schon vorher aus was ich kann) aber da kann ich glaub ich entweder die eine ebene (X-Y) berechnen oder die andere (X-Z). Hoffentlich war mein Bild stark aussagekräftig. Wenn nicht besser kann ichs nun mal nicht. |
||
Steve0 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Sorry hab den Thread von Dreamora net gesehen.
Das ändert natürlich alles. Hier mein Code: Code: [AUSKLAPPEN] Graphics3D 640,480,0,2
SetBuffer BackBuffer() cube1=CreateCube() cube2=CreateCube() cam=CreateCamera() MoveEntity cam,0,50,0 MoveEntity cube2,-20,0,0 WireFrame 1 CameraClsColor cam,255,255,255 EntityColor cube1,0,0,0 EntityColor cube2,0,0,0 Repeat If KeyDown(59) Then winkel=winkel+1 If KeyDown(60) Then winkel=winkel-1 If KeyDown(61) Then winkel2=winkel2+1 If KeyDown(62) Then winkel2=winkel2-1 X# = 20 * Cos( winkel ) * Cos( winkel2 ) Y# = 20 * Sin( winkel2 ) Z #= 20 * Sin( winkel ) * Cos( winkel2 ) PositionEntity cube2,x,y,z PointEntity cam,cube1 RenderWorld UpdateWorld Color 0,0,0 Text 0,0,"X: "+X+" Y: "+Y+" Z: "+Z Text 0,15,"Tris: "+TrisRendered() Text 0,30,"F1 um alpha zu vergrößern" Text 0,45,"F2 um alpha zu verringern" Text 0,60,"F3 um beta zu vergrößern" Text 0,75,"F4 um beta zu verkleinern" Flip Until KeyDown(1) Sicher kann man noch was verbessern. Aber genauso wollte ich´s Danke ![]() |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ich habs noch editiert, um eine gewünschte "Grundposition" zu ermöglichen ( also den Startpunkt / Originalpunkt, von welchem alles ausgeht ) | ||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group