Hilfe

CameraProject

B3D

Aufruf

CameraProject kamera%, x#, y#, z#

Parameter

kamera% Identität einer Kamera
x# X-Koordinate im 3D-Raum
y# Y-Koordinate im 3D-Raum
z# Z-Koordinate im 3D-Raum


Rückgabewert

Die 'Projected'-Funktionen liefern die errechneten Werte zurück.


Beschreibung

Die Anweisung CameraProject errechnet aus den absoluten 3D-Raumkoordinaten die 2D-Bildschirmkoordinaten.

Nachdem CameraProject ausgeführt wurde, müssen noch Funktionen wie ProjectedX, ProjectedY und ProjectedZ benutzt werden. Die errechnete X- und Y-Werte sind dabei die 2D-Bildschirmkoordinaten. Der Z-Wert ist entweder 0 oder 1. Bei 0 liegt die Koordinate hinter der Kamera, bei 1 vor der Kamera.

Es gibt viele Anwendungsmöglichkeiten dafür. Mithilfe dieser Funktionen kann man z.B. einen Sonnenschweif simulieren.


Beispiel

Hier wird gezeigt, wie die Projected Befehle arbeiten

Graphics3D 640, 480, 0, 2
SetBuffer BackBuffer()
camera = CreateCamera()
light = CreateLight()
pivot = CreatePivot()
cube = CreateCube(pivot)
PositionEntity camera, 0, 0, 0
RotateEntity light, 90, 0, 0
PositionEntity cube, 0, 0, 3
PositionEntity pivot, 0, 0, 10
Color 255, 0, 0

While Not KeyDown(1)
   TurnEntity pivot, - .2, 2, - 2
   TurnEntity cube, .5, 1, 2
   CameraProject camera, EntityX(cube, 1), EntityY(cube, 1), EntityZ(cube, 1)
   RenderWorld
   Oval ProjectedX() - 10, ProjectedY() - 10, 20, 20, 0
   Rect ProjectedX(), ProjectedY() - 15, 1, 30, 1
   Rect ProjectedX() - 15, ProjectedY(), 30, 1, 1
   Text ProjectedX() + 20, ProjectedY() - 5, "Mitte Objekt"
   Flip
Wend
End


Siehe auch

EntityInView, ProjectedX, ProjectedY, ProjectedZ

Übersicht 3D Grafik Kamera