zoukankan      html  css  js  c++  java
  • 生成一个平面矩形网格文件

    简介

    生成一个平面矩形网格。

    代码

    // CreateGrid.cpp: 定义控制台应用程序的入口点。
    //
    
    //#include "stdafx.h"
    #include <iostream>
    #include <OpenMesh/Core/IO/MeshIO.hh>
    #include <OpenMesh/Core/Mesh/TriMesh_ArrayKernelT.hh>
    #include<cmath>
    using namespace std;
    typedef OpenMesh::TriMesh_ArrayKernelT<> MyMesh;
    
    int main()
    {
    	MyMesh mesh;
    	int m, n;
    	cout << "please input long and width!
    ";
    	cin >> m >> n;
    	double length = 1.0;
    	MyMesh::VertexHandle **vhandle = new MyMesh::VertexHandle*[m];
    	for (int i = 0;i < m;i++) {
    		vhandle[i] = new MyMesh::VertexHandle[n];//二维数组句柄
    	}
    	std::vector<MyMesh::VertexHandle>face_vhandles;
    	double x = -m* length/2;
    	double y = -n* length/2;
    	for (int i = 0; i < m; i++) {
    		for (int j = 0; j < n; j++) {
    			vhandle[i][j] = mesh.add_vertex(MyMesh::Point(x + i * length, y + j * length, 0));
    		}
    	}
    	for (int i = 0; i < m - 1; i++) {
    		for (int j = 0; j < n - 1; j++) {
    
    			face_vhandles.clear();
    			face_vhandles.push_back(vhandle[i+1][j]);//加入两个面
    			face_vhandles.push_back(vhandle[i][j+1]);
    			face_vhandles.push_back(vhandle[i][j]);
    			
    			mesh.add_face(face_vhandles);
    			face_vhandles.clear();
    			face_vhandles.push_back(vhandle[i + 1][j]);
    			face_vhandles.push_back(vhandle[i + 1][j + 1]);
    			face_vhandles.push_back(vhandle[i][j + 1]);
    			mesh.add_face(face_vhandles);
    
    		}
    	}
    
    
    	// write mesh to output.obj
    	try
    	{
    		if (!OpenMesh::IO::write_mesh(mesh, "output8.off"))
    		{
    			std::cerr << "Cannot write mesh to file 'output8.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
  • 相关阅读:
    mahout下的KMeans Clustering实现
    信号量、互斥体和自旋锁
    找出二叉树中两个节点的最低共同父节点
    C/C++中volatile关键字
    函数指针和指针函数
    java终止线程的通用机制
    我的一次重构实践
    新手浅谈Future
    线程中添加线程
    死锁
  • 原文地址:https://www.cnblogs.com/eat-too-much/p/11136986.html
Copyright © 2011-2022 走看看