VTK polyData WarpSurface 扩张多边形数据

WarpSurface 

乍一看好像和 scale 差不多,但不一样

vtkWarpVector是一个过滤器,它通过沿向量移动点乘以比例因子来修改点坐标。常用于显示流动剖面或机械变形。

上图是  scale = 0.2; 效果

#include <vtkPLYReader.h>
#include <vtkSTLWriter.h>
#include "RGBRegGrowing.h"
#include <vtkPolyDataNormals.h>
#include <vtkWarpVector.h>

vtkSmartPointer<vtkSTLReader> MainWindow::ReadStl(const char *fileName)
{
	vtkSmartPointer<vtkSTLReader> reader = vtkSmartPointer<vtkSTLReader>::New();
	reader->SetFileName(fileName);
	reader->Update();
	//vtkSmartPointer <vtkPolyData> poly = reader->GetOutput();
	return reader;
}


		auto polygg = ReadStl(pathOne.toStdString().c_str());
		// mLeftVTKWidget->addAllCloudPoints(polygg->GetOutput());

		mLeftVTKWidget->SetInputData(polygg->GetOutput());

		vtkNew<vtkPolyDataNormals> normals;
		normals->SetInputConnection(polygg->GetOutputPort());
		normals->SplittingOff();
		vtkNew<vtkWarpVector> warp;
		warp->SetInputConnection(normals->GetOutputPort());
		warp->SetInputArrayToProcess(0, 0, 0, vtkDataObject::FIELD_ASSOCIATION_POINTS, vtkDataSetAttributes::NORMALS);
		warp->SetScaleFactor(0.2);
		warp->Update();
		vtkNew<vtkPolyData>  bInput;
		bInput->DeepCopy(warp->GetOutput());
	    mRightVTKWidget->SetInputData(bInput);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

恋恋西风

up up up

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值