开源 企业版 高校版 私有云 模力方舟 AI 队友
代码拉取完成,页面将自动刷新
加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
已有帐号? 立即登录
文件
master
分支 (6)
标签 (64)
master
nightly-master
release-6.3
dashboard
release
hooks
v8.0.1
v8.0.0
v8.0.0.rc2
v8.0.0.rc1
v7.1.1
v7.1.0
v7.1.0.rc2
v7.1.0.rc1
v7.0.0
v7.0.0.rc2
v7.0.0.rc1
v6.3.0
v6.3.0.rc2
v6.3.0-rc1
v6.3.0.rc1
v6.2.0
v6.2.0.rc1
v6.1.0
v6.1.0.rc2
v6.1.0.rc1
master
分支 (6)
标签 (64)
master
nightly-master
release-6.3
dashboard
release
hooks
v8.0.1
v8.0.0
v8.0.0.rc2
v8.0.0.rc1
v7.1.1
v7.1.0
v7.1.0.rc2
v7.1.0.rc1
v7.0.0
v7.0.0.rc2
v7.0.0.rc1
v6.3.0
v6.3.0.rc2
v6.3.0-rc1
v6.3.0.rc1
v6.2.0
v6.2.0.rc1
v6.1.0
v6.1.0.rc2
v6.1.0.rc1
克隆/下载
克隆/下载
提示
下载代码请复制以下命令到终端执行
为确保你提交的代码身份被 Gitee 正确识别,请执行以下命令完成配置
初次使用 SSH 协议进行代码克隆、推送等操作时,需按下述提示完成 SSH 配置
1 生成 RSA 密钥
2 获取 RSA 公钥内容,并配置到 SSH公钥
在 Gitee 上使用 SVN,请访问 使用指南
使用 HTTPS 协议时,命令行会出现如下账号密码验证步骤。基于安全考虑,Gitee 建议 配置并使用私人令牌 替代登录密码进行克隆、推送等操作
Username for 'https://gitee.com': userName
Password for 'https://userName@gitee.com': # 私人令牌
master
分支 (6)
标签 (64)
master
nightly-master
release-6.3
dashboard
release
hooks
v8.0.1
v8.0.0
v8.0.0.rc2
v8.0.0.rc1
v7.1.1
v7.1.0
v7.1.0.rc2
v7.1.0.rc1
v7.0.0
v7.0.0.rc2
v7.0.0.rc1
v6.3.0
v6.3.0.rc2
v6.3.0-rc1
v6.3.0.rc1
v6.2.0
v6.2.0.rc1
v6.1.0
v6.1.0.rc2
v6.1.0.rc1
VTK
/
Examples
/
ImageProcessing
/
Python
/
ImageInteractor.py
VTK
/
Examples
/
ImageProcessing
/
Python
/
ImageInteractor.py
ImageInteractor.py 4.18 KB
一键复制 编辑 原始数据 按行查看 历史
VTK Developers 提交于 2012年04月09日 22:43 +08:00 . Remove trailing whitespace from all source files
#!/usr/bin/env python
# This example shows how to use the InteractorStyleImage and add your
# own event handling. The InteractorStyleImage is a special
# interactor designed to be used with vtkImageActor in a rendering
# window context. It forces the camera to stay perpendicular to the
# x-y plane.
import vtk
from vtk.util.misc import vtkGetDataRoot
VTK_DATA_ROOT = vtkGetDataRoot()
# Create the image
reader = vtk.vtkPNGReader()
reader.SetDataSpacing(0.8, 0.8, 1.5)
reader.SetFileName(VTK_DATA_ROOT + "/Data/fullhead15.png")
shiftScale = vtk.vtkImageShiftScale()
shiftScale.SetInputConnection(reader.GetOutputPort())
shiftScale.SetShift(0)
shiftScale.SetScale(0.07)
shiftScale.SetOutputScalarTypeToUnsignedChar()
ia = vtk.vtkImageActor()
ia.GetMapper().SetInputConnection(shiftScale.GetOutputPort())
# Create the RenderWindow, Renderer and both Actors
ren = vtk.vtkRenderer()
renWin = vtk.vtkRenderWindow()
renWin.AddRenderer(ren)
iren = vtk.vtkRenderWindowInteractor()
iren.SetRenderWindow(renWin)
iren.Initialize()
# Add the actors to the renderer, set the background and size
ren.AddActor(ia)
ren.SetBackground(0.1, 0.2, 0.4)
renWin.SetSize(400, 400)
renWin.Render()
cam1 = ren.GetActiveCamera()
ren.ResetCameraClippingRange()
renWin.Render()
### Supporting data for callbacks
pts = vtk.vtkPoints()
pts.SetNumberOfPoints(4)
lines = vtk.vtkCellArray()
lines.InsertNextCell(5)
lines.InsertCellPoint(0)
lines.InsertCellPoint(1)
lines.InsertCellPoint(2)
lines.InsertCellPoint(3)
lines.InsertCellPoint(0)
pd = vtk.vtkPolyData()
pd.SetPoints(pts)
pd.SetLines(lines)
bboxMapper = vtk.vtkPolyDataMapper2D()
bboxMapper.SetInputData(pd)
bboxActor = vtk.vtkActor2D()
bboxActor.SetMapper(bboxMapper)
bboxActor.GetProperty().SetColor(1, 0, 0)
ren.AddViewProp(bboxActor)
### Functions for callbacks
X = 0
Y = 0
bboxEnabled = 0
def StartZoom(obj, event):
global X, Y, bboxEnabled
xy = iren.GetEventPosition()
X, Y = xy
pts.SetPoint(0, X, Y, 0)
pts.SetPoint(1, X, Y, 0)
pts.SetPoint(2, X, Y, 0)
pts.SetPoint(3, X, Y, 0)
bboxEnabled = 1
bboxActor.VisibilityOn()
def MouseMove(obj, event):
global X, Y, bboxEnabled
if bboxEnabled:
xy = iren.GetEventPosition()
x, y = xy
pts.SetPoint(1, x, Y, 0)
pts.SetPoint(2, x, y, 0)
pts.SetPoint(3, X, y, 0)
renWin.Render()
# Do the hard stuff: pan and dolly
def EndZoom(obj, event):
global bboxEnabled
p1 = pts.GetPoint(0)
p2 = pts.GetPoint(2)
x1, y1, z1 = p1
x2, y2, z2 = p2
ren.SetDisplayPoint(x1, y1, 0)
ren.DisplayToWorld()
p1 = ren.GetWorldPoint()
ren.SetDisplayPoint(x2, y2, 0)
ren.DisplayToWorld()
p2 = ren.GetWorldPoint()
p1X, p1Y, p1Z = p1[:3]
p2X, p2Y, p2Z = p2[:3]
camera = ren.GetActiveCamera()
focalPt = camera.GetFocalPoint()
focalX, focalY, focalZ = focalPt
position = camera.GetPosition()
positionX, positionY, positionZ = position
deltaX = focalX-(p1X+p2X)/2.0
deltaY = focalY-(p1Y+p2Y)/2.0
# Set camera focal point to the center of the box
camera.SetFocalPoint((p1X+p2X)/2.0, (p1Y+p2Y)/2.0, focalZ)
camera.SetPosition(positionX-deltaX, positionY-deltaY,positionZ)
# Now dolly the camera to fill the box
# This is a half-assed hack for demonstration purposes
if p1X > p2X:
deltaX = p1X-p2X
else:
deltaX = p2X-p1X
if p1Y > p2Y:
deltaY = p1Y-p2Y
else:
deltaY = p2Y-p1Y
winSize = renWin.GetSize()
winX, winY = winSize
sx = deltaX/winX
sy = deltaY/winY
if sx > sy:
dolly = 1.0+1.0/(2.0*sx)
else:
dolly = 1.0+1.0/(2.0*sy)
camera.Dolly(dolly)
ren.ResetCameraClippingRange()
bboxEnabled = 0
bboxActor.VisibilityOff()
renWin.Render()
# Create an image interactor style and associate it with the
# interactive renderer. Then assign some callbacks with the
# appropriate events. THe callbacks are implemented as Python functions.
interactor = vtk.vtkInteractorStyleImage()
iren.SetInteractorStyle(interactor)
interactor.AddObserver("LeftButtonPressEvent", StartZoom)
interactor.AddObserver("MouseMoveEvent", MouseMove)
interactor.AddObserver("LeftButtonReleaseEvent", EndZoom)
renWin.Render()
iren.Start()
Loading...
举报
举报成功
我们将于2个工作日内通过站内信反馈结果给你!
请认真填写举报原因,尽可能描述详细。
请选择举报类型
取消
发送
误判申诉

此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。

如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。

取消
提交

简介

Mirror of Visualization Toolkit repository
取消

发行版

暂无发行版

贡献者

全部

近期动态

不能加载更多了
编辑仓库简介
简介内容
主页
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C++
1
https://gitee.com/devstone/VTK.git
git@gitee.com:devstone/VTK.git
devstone
VTK
VTK
master
点此查找更多帮助

搜索帮助

评论
仓库举报
回到顶部
登录提示
该操作需登录 Gitee 帐号,请先登录后再操作。
立即登录
没有帐号,去注册

AltStyle によって変換されたページ (->オリジナル) /