Position Problems

Blitz3D Forums/Blitz3D Beginners Area/Position Problems

Duckstab[o](Posted 2004) [#1]
I have two objects in space which have there own collisions and move in there z axis but i need to position a third object between the other two dead centre this is the main ship is there any easy way to find the exact point i should place it


Stevie G(Posted 2004) [#2]
X# = ( entityx(object1,1) + entityx( object2,1)) * . 5
Y# = ( entityy(object1,1) + entityy( object2,1 )) * . 5
Z# = ( entityz(object1,1) + entityz( object2,1 )) * . 5
positionentity Object3, x, y, z


Duckstab[o](Posted 2004) [#3]
Thanks m8t thats what i needed if only i had as many ideas as mental blocks i would be a millionare,forgot all me mode mean and range maths :)


RiverRatt(Posted 2004) [#4]
You could also use the player as a pivot.
like
player=loadmesh(millionare.b3d)
object1=loadmesh(range,player)
object2=loadmesh(maths,player)
positionentity object1,0,0,1
positionentity object2,0,0,-1
or somthin


Duckstab[o](Posted 2004) [#5]
this is the realy basic kind of mesh i need work with

Graphics3D 1024,768,32,1
AntiAlias 1

Dim Vertbox(8)
Dim Vert1x#(721)
Dim Vert2x#(721)
Dim Vert3x#(721)
Dim Vert4x#(721)
Dim Vert5x#(721)
Dim Vert6x#(721)
Dim Vert7x#(721)
Dim Vert8x#(721)
Dim Vert1y#(721)
Dim Vert2y#(721)
Dim Vert3y#(721)
Dim Vert4y#(721)
Dim Vert5y#(721)
Dim Vert6y#(721)
Dim Vert7y#(721)
Dim Vert8y#(721)
Dim Vert1z#(721)
Dim Vert2z#(721)
Dim Vert3z#(721)
Dim Vert4z#(721)
Dim Vert5z#(721)
Dim Vert6z#(721)
Dim Vert7z#(721)
Dim Vert8z#(721)


Global Ship,balll,ballr,ballf,ballb,ballpiv,temp1,temp2,dist#
Global box,x,y,z,track,camera
Global boxpivot,brush1,player,ball,ballpiv1,ballpiv2
brush1=CreateBrush(25,70,200)
BrushBlend brush1,4
x=10
y=10
z=10

camera=CreateCamera()


light=CreateLight()
Create_Vertbox
Create_vertdata
Create_vert_mesh
createship

SetBuffer BackBuffer()

While Not KeyHit(1)
updatecam
UpdateWorld
RenderWorld
Text 100,100,"trirendered+"+TrisRendered()

Flip 0
Wend
End

Function Create_Vertbox()
Vertbox(1)=CreateCube()
PositionEntity Vertbox(1),0,0,-1
Vertbox(2)=CreateCube()
PositionEntity Vertbox(2),0,1,-4
Vertbox(3)=CreateCube()
PositionEntity Vertbox(3),0,3,-6
Vertbox(4)=CreateCube()
PositionEntity Vertbox(4),0,6,-7
Vertbox(5)=CreateCube()
PositionEntity Vertbox(5),0,0,1
Vertbox(6)=CreateCube()
PositionEntity Vertbox(6),0,1,4
Vertbox(7)=CreateCube()
PositionEntity Vertbox(7),0,3,6
Vertbox(8)=CreateCube()
PositionEntity Vertbox(8),0,6,7
Boxpivot=CreatePivot()
PositionEntity boxpivot,0,0,15
TurnEntity boxpivot,0,90,0
For times=1 To 8
EntityParent Vertbox(times),boxpivot
Next
End Function



Function alignbox()

End Function

Function create_vertdata()
For a=1 To 361
collect_vertdata(a)
If a<46 Then TurnEntity boxpivot,0,-1,0,1
If a>45 And a<91 Then TurnEntity boxpivot,1,-1,0,1
If a>90 And a<136 Then TurnEntity boxpivot,-1,1,0,1
If a>135 And a<181 Then TurnEntity boxpivot,0,-1,0,1
MoveEntity boxpivot,0,0,4
Next

End Function


Function collect_vertdata(a)
Vert1x(a)=EntityX(vertbox(1),1)
Vert1y(a)=EntityY(vertbox(1),1)
Vert1z(a)=EntityZ(vertbox(1),1)
Vert2x(a)=EntityX(vertbox(2),1)
Vert2y(a)=EntityY(vertbox(2),1)
Vert2z(a)=EntityZ(vertbox(2),1)
Vert3x(a)=EntityX(vertbox(3),1)
Vert3y(a)=EntityY(vertbox(3),1)
Vert3z(a)=EntityZ(vertbox(3),1)
Vert4x(a)=EntityX(vertbox(4),1)
Vert4y(a)=EntityY(vertbox(4),1)
Vert4z(a)=EntityZ(vertbox(4),1)
Vert5x(a)=EntityX(vertbox(5),1)
Vert5y(a)=EntityY(vertbox(5),1)
Vert5z(a)=EntityZ(vertbox(5),1)
Vert6x(a)=EntityX(vertbox(6),1)
Vert6y(a)=EntityY(vertbox(6),1)
Vert6z(a)=EntityZ(vertbox(6),1)
Vert7x(a)=EntityX(vertbox(7),1)
Vert7y(a)=EntityY(vertbox(7),1)
Vert7z(a)=EntityZ(vertbox(7),1)
Vert8x(a)=EntityX(vertbox(8),1)
Vert8y(a)=EntityY(vertbox(8),1)
Vert8z(a)=EntityZ(vertbox(8),1)
End Function

Function Create_vert_mesh()
track=CreateMesh()
For a=1 To 360
surf=CreateSurface(track,brush1)
v0=AddVertex(surf,Vert1x(a),Vert1y(a),Vert1z(a),1,1)
v1=AddVertex(surf,Vert2x(a),Vert2y(a),Vert2z(a),1,0)
v2=AddVertex(surf,Vert3x(a),Vert3y(a),Vert3z(a),1,1)
v3=AddVertex(surf,Vert4x(a),Vert4y(a),Vert4z(a),1,0)
v4=AddVertex(surf,Vert5x(a),Vert5y(a),Vert5z(a),1,0)
v5=AddVertex(surf,Vert6x(a),Vert6y(a),Vert6z(a),1,1)
v6=AddVertex(surf,Vert7x(a),Vert7y(a),Vert7z(a),1,0)
v7=AddVertex(surf,Vert8x(a),Vert8y(a),Vert8z(a),1,1)
v8=AddVertex(surf,Vert1x(a+1),Vert1y(a+1),Vert1z(a+1),0,1)
v9=AddVertex(surf,Vert2x(a+1),Vert2y(a+1),Vert2z(a+1),0,0)
v10=AddVertex(surf,Vert3x(a+1),Vert3y(a+1),Vert3z(a+1),0,1)
v11=AddVertex(surf,Vert4x(a+1),Vert4y(a+1),Vert4z(a+1),0,0)
v12=AddVertex(surf,Vert5x(a+1),Vert5y(a+1),Vert5z(a+1),0,0)
v13=AddVertex(surf,Vert6x(a+1),Vert6y(a+1),Vert6z(a+1),0,1)
v14=AddVertex(surf,Vert7x(a+1),Vert7y(a+1),Vert7z(a+1),0,0)
v15=AddVertex(surf,Vert8x(a+1),Vert8y(a+1),Vert8z(a+1),0,1)
t0=AddTriangle(surf,v8,v9,v0)
t1=AddTriangle(surf,v9,v1,v0)
t2=AddTriangle(surf,v9,v10,v1)
t3=AddTriangle(surf,v10,v2,v1)
t4=AddTriangle(surf,v10,v11,v2)
t5=AddTriangle(surf,v11,v3,v2)
t6=AddTriangle(surf,v8,v0,v4)
t7=AddTriangle(surf,v12,v8,v4)
t8=AddTriangle(surf,v12,v4,v5)
t9=AddTriangle(surf,v13,v12,v5)
t10=AddTriangle(surf,v13,v5,v6)
t11=AddTriangle(surf,v14,v13,v6)
t12=AddTriangle(surf,v14,v6,v7)
t13=AddTriangle(surf,v15,v14,v7)
Next
UpdateNormals track
PositionEntity track,0,-12,20
FlipMesh track
For times=1 To 8
FreeEntity vertbox(times)
Next

End Function


Function updatecam()
PickedX()
If MouseDown(1) Then MoveEntity ship,-.01,0,0
If MouseDown(2) Then MoveEntity ship,.01,0,0
If KeyDown(44) Then TurnEntity ship,0,.1,0
If KeyDown(45) Then TurnEntity ship,0,-.1,0
MoveEntity Ship,0,0,0.01
PositionEntity camera,EntityX(ship,1),EntityY(ship,1),EntityZ(ship,1)
RotateEntity camera,EntityPitch(ship,1),EntityYaw(ship,1),EntityRoll(ship,1)
MoveEntity camera,0,6,-10
PointEntity camera,ship
End Function






Function CreateShip()
Ship=CreateSphere(2)
ballf=CreateSphere(2)
ballb=CreateSphere(2)
balll=CreateSphere(2)
ballr=CreateSphere(2)
ballpiv=CreatePivot()
PositionEntity Ship,0,-9,21,1
PositionEntity ballf,0,-9,23,1
PositionEntity ballb,0,-9,19,1
PositionEntity balll,-2,-9,21,1
PositionEntity ballr,2,-9,21,1
PositionEntity ballpiv,0,-9,21,1
RotateEntity ballr,0,90,0,1
RotateEntity balll,0,90,0,1
RotateEntity ballf,0,90,0,1
RotateEntity ballb,0,90,0,1
EntityParent ballpiv,Ship
EntityParent ballf,ballpiv
EntityParent ballb,ballpiv
EntityParent balll,ballpiv
EntityParent ballr,ballpiv
TurnEntity ship,0,90,0,1
EntityPickMode track,2
End Function