|
Dim strOperation as String '操作控制变量
|
|
|
|
Super3D1.RestoreScene |
|
|
|
|
|
Super3D1.Zoom 1.2 |
|
|
|
|
|
Super3D1.Zoom 0.8 |
|
|
|
|
|
Super3D提供了Flood方法,但是不能自动连续的进行模拟,必须通过编程来实现连续的演示;三维模型有一个最大和最小的高程,必须先读出这个值,然后根据这个值设定每一次的淹没高度才能看到较好的效果,否则可能由于高程问题看不到模拟或连续性不好。下图是本范例中淹没模拟的效果图: |
|
 |
|
|
|
Private Sub Command6_Click() '淹没模拟 |
|
If Command6.Caption = "水淹" Then |
|
Super3D1.FloodEnable = True |
|
Timer2.Interval = 50 |
|
Timer2.Enabled = True |
|
Command6.Caption = "停止" |
|
Command6.BackColor = RGB(255, 0, 0) |
|
Else |
|
Super3D1.FloodEnable = False |
|
Timer2.Interval = 0 |
|
Timer2.Enabled = False |
|
Command6.Caption = "水淹" |
|
Command6.BackColor = RGB(191, 191, 191) |
|
Super3D1.Refresh |
|
End If |
|
Private Sub Timer2_Timer() |
|
If WaterHeight < Super3D1.Layers(1).Dataset.MaxZ Then |
|
WaterHeight = WaterHeight + 50 |
|
Else |
|
WaterHeight = 1800 |
|
End If |
|
Super3D1.Flood WaterHeight |
|
End Sub |
|
|
|
|
|
三维模型的旋转方式有七种,即:绕X轴旋转、绕Y轴旋转、绕Z轴旋转、绕XY45度角旋转、绕XZ45度角轴旋转、绕YZ45度角轴旋转、绕原点旋转,实现起来很容易,只要设置Rotate(Angle,X,Y,Z)中X、Y、Z三种不同组合就行了(其中,X、Y、Z只能取值1)。下面以"绕Z轴旋转"为例说明如何实现三维模型的旋转。下图是此范例的效果图: |
|
 |
|
|
|
Private Sub btnRotateZ_Click() '绕Z轴旋转 |
|
Timer1.Enabled = True |
|
End Sub |
|
Private Sub Timer1_Timer() |
|
Super3D1.Rotate 0, 0, 0, 1 |
|
End Sub |