自定义种植体模型

 

#include <vtkCylinderSource.h>
#include <vtkLineSource.h>
#include <vtkPolyData.h>
#include <vtkSmartPointer.h>
#include <vtkPolyDataMapper.h>
#include <vtkActor.h>
#include <vtkRenderWindow.h>
#include <vtkRenderer.h>
#include <vtkRenderWindowInteractor.h>
#include <vtkProperty.h>
#include <vtkTubeFilter.h>
#include "vtkTruncatedConeSource .h"
int main(int, char* [])
{
	//倒角
	vtkSmartPointer<vtkTruncatedConeSource> cylinderSource1 =
		vtkSmartPointer<vtkTruncatedConeSource>::New();
	cylinderSource1->SetLength(0.4);
	cylinderSource1->SetRadius1(6.5);
	cylinderSource1->SetRadius2(4.8);
	double center[3] = { 0,0, 6.6};
	cylinderSource1->SetCenter(center);
	
	//基台
	vtkSmartPointer<vtkTruncatedConeSource> cylinderSource2 =
		vtkSmartPointer<vtkTruncatedConeSource>::New();
	cylinderSource2->SetLength(1.4);
	cylinderSource2->SetRadius1(4.8);
	cylinderSource2->SetRadius2(6.5);

	double center1[3] = { 0,0, 5.7 };
	cylinderSource2->SetCenter(center1);

	//骨内
	vtkSmartPointer<vtkTruncatedConeSource> cylinderSource3 =
		vtkSmartPointer<vtkTruncatedConeSource>::New();
	cylinderSource3->SetLength(10);
	cylinderSource3->SetRadius1(4.2);
	cylinderSource3->SetRadius2(4.8);


	vtkSmartPointer<vtkPolyDataMapper> cylinderMapper1 =
		vtkSmartPointer<vtkPolyDataMapper>::New();
	cylinderMapper1->SetInputConnection(cylinderSource1->GetOutputPort());
	
	vtkSmartPointer<vtkPolyDataMapper> cylinderMapper2 =
		vtkSmartPointer<vtkPolyDataMapper>::New();
	cylinderMapper2->SetInputConnection(cylinderSource2->GetOutputPort());

	vtkSmartPointer<vtkPolyDataMapper> cylinderMapper3 =
		vtkSmartPointer<vtkPolyDataMapper>::New();
	cylinderMapper3->SetInputConnection(cylinderSource3->GetOutputPort());


	vtkSmartPointer<vtkActor> cylinderActor1 =
		vtkSmartPointer<vtkActor>::New();
	cylinderActor1->SetMapper(cylinderMapper1);

	vtkSmartPointer<vtkActor> cylinderActor2 =
		vtkSmartPointer<vtkActor>::New();
	cylinderActor2->SetMapper(cylinderMapper2);

	vtkSmartPointer<vtkActor> cylinderActor3 =
		vtkSmartPointer<vtkActor>::New();
	cylinderActor3->SetMapper(cylinderMapper3);

	vtkSmartPointer<vtkRenderer> renderer1 =
		vtkSmartPointer<vtkRenderer>::New();
	renderer1->AddActor(cylinderActor1);
	renderer1->AddActor(cylinderActor2);
    renderer1->AddActor(cylinderActor3);
	
	vtkSmartPointer<vtkRenderWindow> renderWindow =
		vtkSmartPointer<vtkRenderWindow>::New();
	renderWindow->SetSize(600, 600);
	renderWindow->AddRenderer(renderer1);

	vtkSmartPointer<vtkRenderWindowInteractor> renderWindowInteractor =
		vtkSmartPointer<vtkRenderWindowInteractor>::New();
	renderWindowInteractor->SetRenderWindow(renderWindow);

	
	renderWindow->Render();
	renderWindowInteractor->Start();

	return EXIT_SUCCESS;
}

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值