hallo und fragen zu camerapick und kinematic

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

jungle

Betreff: hallo und fragen zu camerapick und kinematic

BeitragDo, Jul 15, 2004 13:19
Antworten mit Zitat
Benutzer-Profile anzeigen
hi ihr (Blitzer) dort draussen!

...mein erstes posting in diesem board starte ich mal mit einer frage Very Happy

ich versuche mich an dem thema kinematic. ich habe gesehen das es in b3d
nicht vorgesehen ist, hmm!?

unter
https://www.blitzforum.de/view...=kinematic
wurde es mal namentlich erwähnt das war aber auch schon alles Confused

also konkret: läßt sich soetwas wie kinematic in b3d realisieren ?

auch habe ich das mit pick,camerapick usw. wohl noch nicht ganz verstanden
unter
https://www.blitzforum.de/view...ght=picked
gibt es ein bsp.

IF entity=0 THEN ENTITYCOLOR cube,255,255,255
IF entity<>0 THEN ENTITYCOLOR cube,0,255,0

na toll, und was wenn ich den 2. aber nicht den 1. cube einfärben möchte ?

ich poste hier auch mein erstes ergebniss.
evtl. könnt ihr mir ja ein wenig input geben.
es soll möglich sein das äußere ende des gestänges mit der maus zu bewegen
so das die anderen folgen. derzeit sehr blöd über die numerischen tasten
im zehnerblock realisiert Embarassed

vielen dank vorab


Code: [AUSKLAPPEN]

Graphics3D 640,480,32,2
SetBuffer BackBuffer()

camera=CreateCamera()
PositionEntity camera, 0,-1,-9      
RotateEntity camera, 10,0,0       

light=CreateLight()
RotateEntity light, 0,0,0
;----------------------------------------------------------

   ; 1. element
   pivot_1=CreatePivot()                  ; create real pivot1
   PositionEntity pivot_1, 0,0,0            ; position of real pivot1

   element_1a=CreateCube(pivot_1)            ; create element_1a
   ScaleEntity element_1a, 1,.1,.1            ; scale element_1a
   PositionEntity element_1a, 1.1,0,0         ; offset position element_1a to pivot
   
   EntityPickMode element_1a,2               ; need for pick function
   
   element_1b=CreateCube(pivot_1)            ; create visible pivot1 placeholder
   ScaleMesh element_1b, .1,.1,.1            ; scale visible pivot1 placeholder
   EntityColor element_1b, 255,0,0            ; color for visible pivot1 placeholder
   ;----------------------------------------------------------------------------

   ; 2. element
   pivot_2=CreatePivot()                  ; create real pivot2
   PositionEntity pivot_2, 2,-.2,0            ; position of real pivot2

   element_2a=CreateCube(pivot_2)            ; create element_2a
   ScaleEntity element_2a, 1,.1,.1            ; scale element_2a
   PositionEntity element_2a, 1.1,0,0         ; offset position  element_2a to pivot
 
   EntityPickMode element_2a,2               ; need for pick function

   element_2b=CreateCube(pivot_2)            ; create visible pivot2 placeholder
   ScaleMesh element_2b, .1,.1,.1            ; scale pivot2 placeholder
   EntityColor element_2b, 255,0,0            ; color for pivot2 placeholder
   ;----------------------------------------------------------------------------

   ; 3. element
   pivot_3=CreatePivot()                  ; create real pivot3
   PositionEntity pivot_3, 4,-.4,0            ; position of real pivot3

   element_3a=CreateCube(pivot_3)            ; create element_3a
   ScaleEntity element_3a, 1,.1,.1            ; scale element_3a
   PositionEntity element_3a, 1.1,0,0         ; offset position  element_3a to pivot
   
   EntityPickMode element_3a,2               ; need for pick function

   element_3b=CreateCube(pivot_3)            ; create visible pivot3 placeholder
   ScaleMesh element_3b, .1,.1,.1            ; scale pivot3 placeholder
   EntityColor element_3b, 255,0,0            ; color for pivot3 placeholder
   ;----------------------------------------------------------------------------   

   ; Parent Hirachy
   EntityParent pivot_2, pivot_1:EntityParent pivot_3, pivot_2   

   While Not KeyDown(1)
   
   ; Change rotation values depending on the key pressed
   If KeyDown( 71 )=True Then h_angle_1#=h_angle_1#-1
   If KeyDown( 73 )=True Then h_angle_1#=h_angle_1#+1
   
   If KeyDown( 75 )=True Then h_angle_2#=h_angle_2#-1
   If KeyDown( 77 )=True Then h_angle_2#=h_angle_2#+1 
   
   If KeyDown( 79 )=True Then h_angle_3#=h_angle_3#-1
   If KeyDown( 81 )=True Then h_angle_3#=h_angle_3#+1       

   ; Rotate cone using rotation values
   RotateEntity pivot_1, 0, h_angle_1#, 0    
   RotateEntity pivot_2, 0, h_angle_2#, 0   
   RotateEntity pivot_3, 0, h_angle_3#, 0
   
      RenderWorld
      
      Text 0,0,"Use numeric keys (7,9 & 4,6 & 1,3) to change rotation"
      Text 0,30,"Heading Angle1 : "+h_angle_1#
      Text 0,50,"Heading Angle2 : "+h_angle_2#
      Text 0,70,"Heading Angle3 : "+h_angle_3#
   
      If MouseHit(1)=True Then CameraPick(camera,MouseX(),MouseY())               
      Text 220,30,"PickedEntity: "+PickedEntity()
      Text 220,50,"PickedSurface: "+PickedSurface()
      Text 220,70,"PickedTriangle: "+PickedTriangle()
      
      Flip
   Wend
End

Markus2

BeitragDo, Jul 15, 2004 19:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Also stell dir einfach mal ein paar Punkte im Raum vor die
du mit der Maus verschieben kannst .
Wer wo dran hängt legst du selber fest ohne das die in echt
verbunden sind . Dazu gibst du eine länge vor zwischen den Punkten .
Wenn du dir die Verbindungen jetzt als Linien vorstellst und nen
Punkt bewegst verändert sich auch der Winkel der Linien .
Da du die Entfernung zwischen den Linien ja festgelegt hast
mußte die dann so kürzen/verlängern wie vorgegeben .
Von Punkt zu Punkt dient dann als Richtungsvector und
nach dem kannste ein Entity mit AlignToVector ausrichten .
Wenn eine Linie gestaucht wird dürckst du die anderen Punkte weg
und wenn eine Linie verlängert wird ziehen die anderen Punkte nach .
Naja so in der Art , also möglich ist das schon in BB wenn man
sich mit Vectorrechnung auskennt.

Guck mal bei BlitzCoder.com nach Verlet Physik ...
Da gibt es nen Source Code der dir evtl. weiter helfen könnte .

jungle

BeitragDo, Jul 15, 2004 22:02
Antworten mit Zitat
Benutzer-Profile anzeigen
@Markus2

dank´ dir, die blitzcoder links zu verlet3d waren irgendwie tot.
bei blitzbasic.com im forum gab es aber alternative links.
verlet3d sieht mächtig aus, mal schauen ob ich damit ertwas hinbekomme

jGL

Markus2

BeitragFr, Jul 16, 2004 12:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Wegen Verlet Link
Vom Autor die Mail Adresse stand da aber und
ich habe den Quelltext direkt bekommen von ihm Smile

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group