vtkLine

该博客介绍了如何使用vtk库来创建线条图形,重点在于只保存两个点构成的线,并将这些线组合成vtkLines对象,进一步整合到vtkPolyData中,最后将数据输出到文件。
摘要由CSDN通过智能技术生成

只保存两个点

创建3个线,放到vtkLines中,进而作为拓扑数据放入vtkPolyData中

#include <vtkCellArray.h>
#include <vtkLine.h>
#include <vtkPDataSetWriter.h>
#include <vtkPolyData.h>
#include <vtkSmartPointer.h>

int main(int, char *[])
{
	vtkIndent indent;
	
	vtkSmartPointer<vtkLine> line =	vtkSmartPointer<vtkLine>::New();
	
	//第一个参数是线的端点号,第二个参数是线端点对应点的ID
	line->GetPointIds()->SetId(0, 9);// line 由两个点组成,方向是第一个点指向第二个点
	line->GetPointIds()->SetId(1, 10);// 增加再多的点也没用,它什么也不会发生

	line->PrintSelf(std::cout, indent);

	vtkSmartPointer<vtkLine> line2 = vtkSmartPointer<vtkLine>::New();

	line2->GetPointIds()->SetId(0, 11);
	line2->GetPointIds()->SetId(1, 12);

	vtkSmartPointer<vtkLine> line3 &#
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
是的,您是正确的,addLine()函数不是pcl::visualization::PCLVisualizer类的成员函数。如果您想将一条线添加到PCLVisualizer中,您可以使用addLine()函数的替代方法,例如addLine()函数是vtkRenderer类的成员函数,这是PCLVisualizer类的基础。您可以使用以下代码将一条线添加到PCLVisualizer中: ``` pcl::visualization::PCLVisualizer::Ptr viewer(new pcl::visualization::PCLVisualizer("Viewer")); viewer->addCoordinateSystem(1.0); viewer->setBackgroundColor(0, 0, 0); // Define line parameters Eigen::Vector3f p1(0.0, 0.0, 0.0); Eigen::Vector3f p2(1.0, 1.0, 1.0); pcl::PointXYZ pt1(p1[0], p1[1], p1[2]); pcl::PointXYZ pt2(p2[0], p2[1], p2[2]); // Create a vtkLine object vtkSmartPointer<vtkLine> line = vtkSmartPointer<vtkLine>::New(); line->GetPointIds()->SetId(0, 0); line->GetPointIds()->SetId(1, 1); vtkSmartPointer<vtkCellArray> lines = vtkSmartPointer<vtkCellArray>::New(); lines->InsertNextCell(line); // Create a vtkPolyData object and add the vtkLine to it vtkSmartPointer<vtkPolyData> polyData = vtkSmartPointer<vtkPolyData>::New(); polyData->SetPoints(points); polyData->SetLines(lines); // Create a vtkPolyDataMapper object and set the input polyData vtkSmartPointer<vtkPolyDataMapper> mapper = vtkSmartPointer<vtkPolyDataMapper>::New(); mapper->SetInputData(polyData); // Create a vtkActor object and set the mapper vtkSmartPointer<vtkActor> actor = vtkSmartPointer<vtkActor>::New(); actor->SetMapper(mapper); // Add the actor to the PCLVisualizer viewer->getRenderWindow()->GetRenderers()->GetFirstRenderer()->AddActor(actor); // Display the PCLVisualizer while (!viewer->wasStopped()) { viewer->spinOnce(); } ``` 在这个例子中,我们首先创建了一个PCLVisualizer对象,并设置了一些基本的属性,例如坐标系和背景颜色。然后,我们定义了一条线的参数,即起点和终点。接下来,我们创建了一个vtkLine对象并将其添加到vtkCellArray中。然后,我们创建一个vtkPolyData对象,并将vtkLine添加到其中。然后,我们创建一个vtkPolyDataMapper对象,并将其设置为vtkPolyData的输入。最后,我们创建一个vtkActor对象,并将其设置为vtkPolyDataMapper的输入。最后,我们将vtkActor添加到PCLVisualizer中,并显示它。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

C++程序员Carea

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值