【发布时间】:2014-10-12 16:30:35
【问题描述】:
我正在尝试制作一个旋转立方体,它会改变它的比例(在每个轴上)直到 180 度,然后慢慢缩小。
到目前为止,我得到了这个:
package require vtk
package require vtkinteraction
set xLength 2
set yLength 2
set zLength 2
vtkCubeSource cube
cube SetXLength $xLength
cube SetYLength $yLength
cube SetZLength $zLength
cube SetCenter 2 2 2
vtkPolyDataMapper cubeMapper
cubeMapper SetInput [cube GetOutput]
vtkActor cubeActor
cubeActor SetMapper cubeMapper
[cubeActor GetProperty] SetColor 1 0.45 0
[cubeActor GetProperty] SetDiffuse 0.9
[cubeActor GetProperty] SetSpecular 0.45
[cubeActor GetProperty] SetSpecularPower 20
vtkRenderer ren
vtkRenderWindow renWin
renWin AddRenderer ren
vtkRenderWindowInteractor iren
iren SetRenderWindow renWin
iren AddObserver UserEvent {wm deiconify .vtkInteract}
iren Initialize
wm withdraw .
ren AddActor cubeActor
ren SetBackground 0.7 0.7 0.7
renWin SetSize 900 900
for {set i 0} {$i < 360} {incr i} {
if {[expr $i % 2] == 0} {
set xLength 3
set yLength 3
set zLength 3
} else {
set xLength 1
set yLength 1
set zLength 1
}
renWin Render
[ren GetActiveCamera] Azimuth 1
}
vtkCommand DeleteAllObjects
我真的不知道如何正确地沿比例进行平滑过渡并在每次循环迭代时渲染该变化。有任何想法吗?谢谢
【问题讨论】: