3D Achterbahn

Probleme beim Erstellen von 3D-Modellen und Texturen, keine Ahnung womit man Musik macht? Dies ist dein Forum.
Benutzeravatar
deify
Beiträge: 141
Registriert: 29.03.2010 22:01
Computerausstattung: Win7 64bit
AMD Phenom II X4 940
NVIDIA GeForce GTS 250
4GB RAM
Kontaktdaten:

3D Achterbahn

Beitrag von deify »

Hi leute!
Ich habe ein kleines problem (:
purebasic mäßig kenne ich mich inzwischen eigentlich gut genug aus, zumindest was die programmierung angeht, was allerdings 2d oder 3d drawing betrifft eher nicht! (um nicht zu sagen garnicht)... Jetzt stehe ich vor folgendem Problem für meine Facharbeit in Physik, mit dem Thema "Physikalische Berechnungen an der Achterbahn Balck Mamba" würde ich gerne ein 3d modell meiner achterbahn machen! Dazu werde ich später warscheinlich Cinema 4D benutzen.
Jetzt zum eigentlichen problem, die bahn wurde mit einem Beschleunigungsmesser durchfahren, aus den gemessenen werten würde ich nun gerne die streckenänderungen für jedes "delta t" also jeden zeitabschnitt berechnen. da ich mir noch nicht 100 prozentig sicher bin ob das klappen wird, wollte ich nun fragen ob es den möglich ist die berechneten punkte also jeweils die koordinaten x y z als einen punkt darzustellen und wie? Das auslesen und berechnen aus der Excel tabelle und anschließendes einfügen programmieren, der punkt in einer whileschleife sollte ich schaffen!

Hoffe ihr könnt mir helfen

mfg deify
Windows 7 | 64bit | PureBasic 4.51 (x64/x86)
Benutzeravatar
bobobo
jaAdmin
Beiträge: 3873
Registriert: 13.09.2004 17:48
Kontaktdaten:

Re: 3D Achterbahn

Beitrag von bobobo »

Zeig mal ein paar Werte.
‮pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Benutzeravatar
deify
Beiträge: 141
Registriert: 29.03.2010 22:01
Computerausstattung: Win7 64bit
AMD Phenom II X4 940
NVIDIA GeForce GTS 250
4GB RAM
Kontaktdaten:

Re: 3D Achterbahn

Beitrag von deify »

die werte sind an und für sich egal, es geht ja nur darum wie ich den punkt mache, wo ich den 0-punkt setze ist ja auch egal! nur dann muss ich halt von dort aus immer neue kleine punkte machen.

eine funktion wie draw3DPoint(x,y,z) wäre perfekt xD wenn es sowas gibt (;


oder muss ich der 3d ebene etwa ein limit setzen?
sonst würde ich es einfach riesig groß setzen und bei der hälfte enfangen, geht ja nur um die rechnerische richtigkeit oder eher um die verfälschung der ergebnisse durch die verschiebung der erdanziehungskraft auf andere achsen... wenn grob die form raus kommt passt es, dann kann ich es in cinema4d nachstellen (;
Windows 7 | 64bit | PureBasic 4.51 (x64/x86)
Benutzeravatar
bobobo
jaAdmin
Beiträge: 3873
Registriert: 13.09.2004 17:48
Kontaktdaten:

Re: 3D Achterbahn

Beitrag von bobobo »

draw3dPunkt() gibt's natürlich nicht

Pb kann 3d eh "nur" mit der OgreLib darstellen und dort würdest Du
z.B. kleine Kugeln an die relevanten Positionen setzen. Da Du aber
letztlich in C4D "malen" möchstest, bringt Dir das wohl erstmal nicht so viel.


PB kann Dir aber vermutlich helfen die Punkte in einem mit C4D lesbaren Format
zu erstellen.
‮pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Benutzeravatar
deify
Beiträge: 141
Registriert: 29.03.2010 22:01
Computerausstattung: Win7 64bit
AMD Phenom II X4 940
NVIDIA GeForce GTS 250
4GB RAM
Kontaktdaten:

Re: 3D Achterbahn

Beitrag von deify »

also eigentlich ging es mir erstmal nur darum eine grobe vorschau mit dem purebasic 3d programm zu machen, sodass ich sehen kann ob überhaupt eine relistische form herauskommt! die sache mit dem format wäre eine gute alternative oder vorbereitung auf das erstellen der bahn!

kannst du mit vielleicht für beides ein bespiel geben? also wie ich es abspeichern müsste und wie man einen punkt(kleine kugel) zeichnet sodass ich erstmal sehe ob es geht ^^

mfg deify
Windows 7 | 64bit | PureBasic 4.51 (x64/x86)
Benutzeravatar
bobobo
jaAdmin
Beiträge: 3873
Registriert: 13.09.2004 17:48
Kontaktdaten:

Re: 3D Achterbahn

Beitrag von bobobo »

ach kacke .. :mrgreen:
ok .. du nimmst Dir mal das PB demo Skybox (ist im example Verzeichnis
Deiner PB installation)

dort wird ein roboter dargestellt und um den kannst du mit maus drumrumfahren.

kopier mal den code und den kopierten änderst du ab indem due die robot.mesh durch cube.mesh und die r2skin.jpg dirch cubeskin.jpg ersetzt.
die zugehörigen dateien sind hier http://www.vsurf.de/cube.zip (mit blender gemacht)

die gehören entpackt in den examples/data ordner da wo auch die robot.mesg und die jpg liegt

lass das kopierte demo dann mal laufen

damit dur den knubbel findest kannst du nach

Code: Alles auswählen

If ExamineKeyboard()
folgendes einfügen

Code: Alles auswählen

        zz+1
        ResizeEntity(0,zz,zz,zz)
        If zz>5
          zz=0
        EndIf
die grundsätzliche Darstellung eines solchen Teils ist damit kein Problem.
Du muss dann nur n Sack voll solcher Entities bauen und die an die korrekten
Koordinaten setzen. Da man Entities in Pb mit CopyEntity() recht simpel
vervielfältigen kann ist das eigentlich kein dickes Brett was man da bohren
muss.
‮pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Benutzeravatar
bobobo
jaAdmin
Beiträge: 3873
Registriert: 13.09.2004 17:48
Kontaktdaten:

Re: 3D Achterbahn

Beitrag von bobobo »

und hier noch ein angepasster code mit vielen Entities (nutzt mesh und jpg aus dem vorherigen posting)
muss im examples ordner zu liegen kommen.

Code: Alles auswählen

;
; ------------------------------------------------------------
;
;   PureBasic - SkyBox
;
;    (c) 2002 - Fantaisie Software
;
; ------------------------------------------------------------
;
; Thanks to Steve 'Sinbad' Streeting for the nice SkyBox !
;
#CameraSpeed = 1  ;runtergesetzt wegen besser ist das
IncludeFile "Screen3DRequester.pb"
Define.f KeyX, KeyY, MouseX, MouseY
If InitEngine3D()
  Add3DArchive("Data"           , #PB_3DArchive_FileSystem)
  Add3DArchive("Data/skybox.zip", #PB_3DArchive_Zip)
  InitSprite()
  InitKeyboard()
  InitMouse()
  If Screen3DRequester()
    x.f
    y.f
    z.f
    CreateMaterial(0, LoadTexture(0, "Cubeskin.jpg"))
    CreateEntity(0, LoadMesh(0, "Cube.mesh"), MaterialID(0))
    For xx = 1 To 1000
      x=xx/5
      y=Sin(x/5)*4
      z=Cos(x/5)*4
      CopyEntity(0,xx)
      MoveEntity(xx,x,y,z)
    Next
    SkyBox("desert07.jpg")
    CreateCamera(0,0,0,100,100)
    CameraLocate(0,0,0,100)
    Repeat
      Screen3DEvents()
      If ExamineKeyboard()
        zz+1
        For xx=0 To 1000
          ResizeEntity(xx,zz/50,zz/50,zz/50)
        Next
        If zz>10
          zz=0
        EndIf
        If KeyboardPushed(#PB_Key_Left)
          KeyX = -#CameraSpeed
        ElseIf KeyboardPushed(#PB_Key_Right)
          KeyX = #CameraSpeed
        Else
          KeyX = 0
        EndIf
        If KeyboardPushed(#PB_Key_Up)
          KeyY = -#CameraSpeed
        ElseIf KeyboardPushed(#PB_Key_Down)
          KeyY = #CameraSpeed
        Else
          KeyY = 0
        EndIf
      EndIf
      If ExamineMouse()
        MouseX = -(MouseDeltaX()/10)*#CameraSpeed/2
        MouseY = -(MouseDeltaY()/10)*#CameraSpeed/2
      EndIf
      RotateCamera(0, MouseY, MouseX, RollZ, #PB_Relative)
      MoveCamera  (0, KeyX, 0, KeyY)
      RenderWorld()
      FlipBuffers()
    Until KeyboardPushed(#PB_Key_Escape) Or Quit = 1
  EndIf
Else
  MessageRequester("Error", "The 3D Engine can't be initialized",0)
EndIf
End
‮pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
super_castle
Beiträge: 557
Registriert: 29.11.2005 15:05

Re: 3D Achterbahn

Beitrag von super_castle »

http://forums.purebasic.com/german/view ... =4&t=23198

Ist ganz einfach.
Schau dir mein Programm an, simuliere gerade einen Zug mit n3xtd.
Ich habe zb eine Schienenlänge 1000*0.0002 genommen in 3d und habe die Punkte xz gespeichert.
Dann habe ich zb 20x gerade Schienenstränge genommen und 9x gebogene Rechts (9 entspricht einen Winkel von 90 Grad, das heisst ein gebogener Strang hat immer 10 Grad in der Verlegung).

Diese Punkte xy kann ich dann mit dem Timer abfahren und auch bremsen.

Gruss
Antworten