[VTK]VTK的角度测量

本文介绍了如何使用VTK进行3D角度测量,通过vtkAngleWidget实现角度测量功能,并探讨了在3D模型中遇到的问题及解决办法。同时提到了vtkDistanceWidget在3D场景中进行距离测量的应用。
摘要由CSDN通过智能技术生成

VTK模型重建后可能需要角度测量这样一个小功能。

对于角度测量首先需要拥有一个角度,而这个角度通常由两条线段组成,VTK的角度测量里面也有直接应用该方法可实现的。

也就是说通过定义两天线段,线段有两个端点(两个线段共用其中一个),移动其中端点就会响应一定事件并对点信息进行更新以及计算,最后将结果显示。

下面先看对移动端点显示部分代码:

// 这里定义了2个全局的lineWidget
vtkLineWidget *lineWidget1; vtkLineWidget *lineWidget2; class vtkLWCallback : public vtkCommand { public: static vtkLWCallback *New() { return new vtkLWCallback; } virtual void Execute(vtkObject *caller, unsigned long, void*) { vtkLineWidget *lineWidget = reinterpret_cast<vtkLineWidget*>(caller); double O[3], A[3], B[3];
//重新设置两条线段到同一个端点 lineWidget
->GetPoint1 (O); lineWidget1->SetPoint1 (O); lineWidget2->SetPoint1 (O); lineWidget1->GetPoint2 (A); lineWidget2->GetPoint2 (B); double OA,OB,AB; AB=sqrt((A[0]-B[0])*(A[0]-B[0]) + (A[1]-B[1])*(A[1]-B[1]) + (A[2]-B[2])*(A[2]-B[2])); OA=sqrt((A[0]-O[0])*(A[0]-O[0]) + (A[1]-O[1])*(A[1]-O[1]) + (A[2]-O[2])*(A[2]-O[2])); OB=sqrt((O[0]-B[0])*(O[
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值