用vtk画抛物面

本文介绍了如何利用vtk库中的vtkQuadric函数来创建并显示一个抛物面。通过具体的伪代码,展示了实现这一过程的关键步骤。
摘要由CSDN通过智能技术生成

主要运用vtk中vtkQuadric函数

伪代码

void ModleData::drawParaboloid()
{
	float radius = data[7];
	float temp = -4 * data[8]; // data[7] 表示焦距
	vtkSmartPointer<vtkQuadric>quadric = vtkSmartPointer<vtkQuadric>::New();
	quadric->SetCoefficients(1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, temp, 0.0);

	//二次函数采样分辨率
	vtkSmartPointer<vtkSampleFunction>sample = vtkSmartPointer<vtkSampleFunction>::New();
	sample->SetSampleDimensions(40, 40, 20);
	sample->SetImplicitFunction(quadric);
	double xmin = -radius, xmax = radius,
		zmin = 1.0f / temp, zmax = - radius * radius / temp + zmin;
	sample->SetModelBounds(xmin, xmax, xmin, xmax, zmin, zmax);
	vtkSmartPointer<vtkContourFilter> contourFilter = vtkSmartPointer<vtkContourFilter>::New();
	contourFilter->SetInputConnection(sample->GetOutputPort());
	contourFilter->GenerateValues(1, 1, 1);
	contourFilter->
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值