3DSTATE for Visual basic.Net开发(三)

 3DSTATEfor Visual basic.Net开发

三峡大学土木水电学院3S实验室 肖泽云

注:转载请说明来源处!
基础篇:
一、Cameras摄像机

1、为摄像机设置Handle值
我们通常用STATE_camera_get_default_camera为摄像机设置Handle值。存储handles值得便利应该一直定义成long类型数据。
eg
Dim CameraHandle As UIntPtr
CameraHandle = STATE_camera_get_default_camera()
其他返回给摄像机handle值得功能函数有:
STATE_camera_get_using_name()
STATE_camera_get_first_camera()
STATE_camera_get_next_camera()
STATE_camera_create()
2、获取和设置摄像机位置
一般位置用一个数组来表示。获取一个摄像机的位置代码如下:
Dim CamLocX As Double
Dim CamLocY As Double
Dim CamLocZ As Double
STATE_camera_get_location( Camera, &CamLocX, &CamLocY, &CamLocZ )

Dim CamLoc(2) As Double
STATE_camera_get_location1( Camera, CamLoc)
设置一个摄像机的位置用同样的方式,STATE_camera_set_locationSTATE_camera_set_location1,如:
Dim CamLoc(2) AsDouble
        CamLoc(0) = -100
        CamLoc(1) = 100
        CamLoc(2) = 100
        STATE_camera_set_location1(STATE_camera_get_default_camera, CamLoc)
3、获取和设置摄像机的方向
摄像机的方向值是一个向量,这个向量的长度可以为任何值除了0,但是系统返回时将会把它归一化(其长度为1)。它的相关函数有:
STATE_camera_get_direction
STATE_camera_get_direction1
STATE_camera_set_direction
STATE_camera_set_direction1
eg:
Dim CamDirection(2) AsDouble
        STATE_camera_get_direction1(STATE_camera_get_default_camera, CamDirection)
        MsgBox(CamDirection(0).ToString())
4、移动摄像机
移动摄像机用STATE_camera_move函数。
例如:
STATE_camera_move(STATE_camera_get_default_camera, _3DSTATE.CAMERA_SPACE, -10, 0, 0)
表示摄像机向前移动了10个单位。
5、移动摄像机更好的方式
用函数CameraWasMoved = STATE_camera_move_with_collision_detection ( Camera, WantedLocation, CameraPhysicalWidth)判断是否能移动。
Dim WantedLocation(2) AsDouble
        WantedLocation(0) = -100
        WantedLocation(1) = 100
        WantedLocation(2) = 100
Dim CameraPhysicalWidth AsDouble = 200

Dim CameraWasMoved AsBoolean = STATE_camera_move_with_collision_detection(STATE_camera_get_default_camera, WantedLocation, CameraPhysicalWidth)
MsgBox(CameraWasMoved.ToString())
6、旋转摄像机
左右旋转用函数STATE_camera_rotate_z
例如:
STATE_camera_rotate_z(STATE_camera_get_default_camera, 2, WORLD_SPACE)
摄像机向左旋转2度。
STATE_camera_rotate_y( Camera, 2, CAMERA_SPACE)
摄像机向上旋转2度。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值