zoukankan      html  css  js  c++  java
  • 生成一个Cylinder

    简介

    用到了上一个博客的,AddPolygon。
    生成的是一个筒状物体。

    代码

    // CreateCylinder.cpp: 定义控制台应用程序的入口点。
    //
    
    //#include "stdafx.h"
    #include <iostream>
    #include "AddPolygon.h"
    #include <OpenMesh/Core/IO/MeshIO.hh>
    #include <OpenMesh/Core/Mesh/TriMesh_ArrayKernelT.hh>
    #include<cmath>
    
    MyMesh* CreateCylinder(int edge, double height) {
    	MyMesh * cylinder = new MyMesh;
    	MyMesh::VertexHandle * top = AddPolygon(*cylinder, edge, height / 2, true);
    	MyMesh::VertexHandle * bottom = AddPolygon(*cylinder, edge, -height / 2, false);
    	for (int i = 0; i < edge; i++) {
    		int next = (i + 1) % edge;
    		std::vector<MyMesh::VertexHandle>face_vhandles;
    		face_vhandles.push_back(bottom[i]);
    		face_vhandles.push_back(top[next]);
    		face_vhandles.push_back(top[i]);
    		(*cylinder).add_face(face_vhandles);
    		face_vhandles.clear();
    		face_vhandles.push_back(bottom[i]);
    		face_vhandles.push_back(bottom[next]);
    		face_vhandles.push_back(top[next]);
    		(*cylinder).add_face(face_vhandles);
    	}
    	return cylinder;
    }
    
    
    int main()
    {
    	cout << "Please input edge(int) height(double): 
    ";
    	int edge;
    	double height;
    	cin >> edge >> height;
    	MyMesh * mesh = CreateCylinder(edge, height);
    	
    	try
    	{
    		if (!OpenMesh::IO::write_mesh(*mesh, "output4 .off")) {
    			std::cerr << "Cannot write mesh to file ' output4 .off ' " << std::endl;
    			return 1;
    		}
    	}
    	catch (std::exception&x) {
    		std::cerr << x.what() << std::endl;
    		return 1;
    	}
        return 0;
    }
    
    
    
    Hope is a good thing,maybe the best of things,and no good thing ever dies.----------- Andy Dufresne
  • 相关阅读:
    分西瓜(dfs)
    括号配对(栈)
    gcd表(欧几里得定理)
    整数性质(拓展欧几里得算法)
    欧几里得算法(求最大公约数)拓展欧几里得算法
    删除元素(二分查找)
    括号配对问题
    公司组织看电影(综合)
    取余数(%)
    幼儿园分苹果(/)
  • 原文地址:https://www.cnblogs.com/eat-too-much/p/11138601.html
Copyright © 2011-2022 走看看