ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

VTK--绘制文本

2020-12-23 18:32:33  阅读:301  来源: 互联网

标签:include -- text VTK vtkSmartPointer renderer tf New 文本



//绘制文本
#include<vtkRenderer.h>
#include<vtkPolyDataMapper.h>
#include<vtkActor.h>
#include<vtkRenderWindow.h>
#include<vtkPolyDataMapper.h>
#include<vtkFollower.h>
#include<vtkVectorText.h>
#include<vtkAxes.h>
#include<vtkProperty.h>
#include<vtkNamedColors.h>

#include <vtkAppendPolyData.h>
#include<vtkRenderWindowInteractor.h>
#include<vtkAutoInit.h>


#include <vtkVectorText.h>
#include <vtkTransform.h>
#include <vtkTransformFilter.h>
#include <vtkAppendPolyData.h>

int main(int argc, char *argv[])
{
	//点集合
	vtkSmartPointer<vtkPoints> points = vtkSmartPointer<vtkPoints>::New();
	//定义cells
	vtkSmartPointer<vtkCellArray> verts = vtkSmartPointer<vtkCellArray>::New();
	//保存标签多边形的
	vtkSmartPointer<vtkAppendPolyData> appendPolyData = vtkSmartPointer<vtkAppendPolyData>::New();

	vtkSmartPointer<vtkMath> math = vtkSmartPointer<vtkMath>::New();
	for (int i = 0;i<500;i++) {
		double x = math->Random(1, 3);
		double y = math->Random(1, 3);
		double z = math->Random(1, 3);
		points->InsertNextPoint(x, y, z);
		verts->InsertNextCell(1);
		verts->InsertCellPoint(i);

		vtkSmartPointer<vtkVectorText> text = vtkSmartPointer<vtkVectorText>::New();
		text->SetText(std::to_string(i).c_str());
		//--进行缩放
		vtkSmartPointer<vtkTransform> t = vtkSmartPointer<vtkTransform>::New();
		t->Translate(x, y, z);
		t->Scale(.04, .04, .04); //NOTICE,缩放比例,注意,放在正常比例中会很小,甚至看不到

		vtkSmartPointer<vtkTransformFilter> tf = vtkSmartPointer<vtkTransformFilter>::New();
		tf->SetTransform(t);
		//tf->SetInputData(text->GetOutput());
		tf->SetInputConnection(text->GetOutputPort());

		appendPolyData->AddInputConnection(tf->GetOutputPort());
	}
	//原始数据 显示点集合
	vtkSmartPointer<vtkPolyData> polyData = vtkSmartPointer<vtkPolyData>::New();
	polyData->SetPoints(points);
	polyData->SetVerts(verts);

	vtkSmartPointer<vtkPolyDataMapper> mapper = vtkSmartPointer<vtkPolyDataMapper>::New();
	mapper->SetInputData(polyData);

	vtkSmartPointer<vtkActor> vertsActor = vtkSmartPointer<vtkActor>::New();
	vertsActor->SetMapper(mapper);
	vertsActor->GetProperty()->SetPointSize(5);
	//显示字体
	vtkSmartPointer<vtkPolyDataMapper> textMapper = vtkSmartPointer<vtkPolyDataMapper>::New();
	textMapper->SetInputConnection(appendPolyData->GetOutputPort());
	//textMapper->SetInputData(appendPolyData->GetOutput());
	vtkSmartPointer<vtkActor> textActor = vtkSmartPointer<vtkActor>::New();
	textActor->SetMapper(textMapper);


	vtkSmartPointer<vtkRenderer> renderer = vtkSmartPointer<vtkRenderer>::New();
	renderer->AddActor(vertsActor);
	renderer->AddActor(textActor);
	renderer->SetBackground(.4, .5, .6);

	vtkSmartPointer<vtkRenderWindow> renderWindow = vtkSmartPointer<vtkRenderWindow>::New();
	renderWindow->AddRenderer(renderer);
	renderWindow->SetSize(500, 500);

	vtkSmartPointer<vtkRenderWindowInteractor> renderWindowInteractor = vtkSmartPointer<vtkRenderWindowInteractor>::New();

	renderWindowInteractor->SetRenderWindow(renderWindow);
	renderWindowInteractor->Initialize();
	renderWindowInteractor->Start();

}

标签:include,--,text,VTK,vtkSmartPointer,renderer,tf,New,文本
来源: https://blog.csdn.net/xi__q/article/details/111596078

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有