hallo und fragen zu camerapick und kinematic
Übersicht

![]() |
jungleBetreff: hallo und fragen zu camerapick und kinematic |
![]() Antworten mit Zitat ![]() |
---|---|---|
hi ihr (Blitzer) dort draussen!
...mein erstes posting in diesem board starte ich mal mit einer frage ![]() 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 ![]() 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 ![]() 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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
@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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wegen Verlet Link
Vom Autor die Mail Adresse stand da aber und ich habe den Quelltext direkt bekommen von ihm ![]() |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group