生成球 使用openMesh 库

简介

使用openmesh生成一个球,采用的是标准球坐标系。


// 生成球  n 最好输入偶数  10 或者 100 
#include <iostream>
#include <OpenMesh/Core/IO/MeshIO.hh>
#include <OpenMesh/Core/Mesh/TriMesh_ArrayKernelT.hh>
#include<cmath>
#define pi 3.1415926
using namespace std;
typedef OpenMesh::TriMesh_ArrayKernelT<> MyMesh;int main()
{MyMesh mesh;int n,count=10000,k=-1;cout << "n:";cin >> n;MyMesh::VertexHandle *vhandle = new MyMesh::VertexHandle[count];std::vector<MyMesh::VertexHandle>face_vhandles;for (int j =0;j < n;j++) {double distance = cos(j*pi / n);// 原先是 sindouble r_circle = sin(j*pi / n);for (int i = 0;i < n;i++) {++k;vhandle[k]=mesh.add_vertex(MyMesh::Point(r_circle*cos(2 * i*pi / n), r_circle*sin(2 * i*pi / n), distance));// 对网格添加顶点}}for (int i = 0;i < n-1;i++) {for (int j = 0;j < n;j++) {int topRight = i * n + j;int topLeft = i * n + (j + 1) % n;int bottomRight = (i + 1)*n + j;int bottomLeft = (i + 1)*n + (j + 1) % n;face_vhandles.clear();face_vhandles.push_back(vhandle[bottomRight]);face_vhandles.push_back(vhandle[bottomLeft]);face_vhandles.push_back(vhandle[topRight]);mesh.add_face(face_vhandles);face_vhandles.clear();face_vhandles.push_back(vhandle[bottomLeft]);face_vhandles.push_back(vhandle[topLeft]);face_vhandles.push_back(vhandle[topRight]);mesh.add_face(face_vhandles);}}//vhandle[k+1] = mesh.add_vertex(MyMesh::Point(0, 0, 1));vhandle[k+1] = mesh.add_vertex(MyMesh::Point(0, 0, -1));for (int i = 0;i < n;i++) {//face_vhandles.clear();//////face_vhandles.push_back(vhandle[i]);//face_vhandles.push_back(vhandle[(i + 1) % n]);//face_vhandles.push_back(vhandle[k + 2]);//mesh.add_face(face_vhandles);face_vhandles.clear();face_vhandles.push_back(vhandle[k- i]);face_vhandles.push_back(vhandle[k - (i + 1) % n]);face_vhandles.push_back(vhandle[k + 1]);mesh.add_face(face_vhandles);}try{if (!OpenMesh::IO::write_mesh(mesh, "output5 .off")) {std::cerr << "Cannot write mesh to file ' output5 .off ' " << std::endl;return 1;}}catch (std::exception&x) {std::cerr << x.what() << std::endl;return 1;}return 0;
}

转载于:https://www.cnblogs.com/eat-too-much/p/11134253.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/550327.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

oracle存储过程没有返回值,Java调用Oracle存储过程(无返回值)

无返回值&#xff1a;1&#xff1a;创建存储过程此存储过程向表中插入一条数据create or replace procedure demo_procedure(id varchar2,name varchar2,age varchar2,sex varchar2,address varchar2)asbegininsert into system.demo values(id,name,age,sex,address);end;2&am…

python static函数_python函数怎么实现static变量?

展开全部python函数实现static变量具体32313133353236313431303231363533e4b893e5b19e31333365633838如下&#xff1a;def ask_ok(prompt, retries4, complaintYes or no, please!):while True:ok raw_input(prompt)if ok in (y, ye, yes): return Trueif ok in (n, no, nop, …

Linux权限管理、系统进程管理

权限管理 linux系统中分为四种角色 uuser 当前用户 ggroup 同组用户 oother 其他用户 aall 代表所有用户 三种权限 rread 可读 wwrite 可写 xexecute 可执行 通过ls -l(ll)查看文件或者目录的权限 ll a.log -rw-r--r--. 1 root root 16003 Jun 27 09:20 a.log 分析第一部…

fedora 安装oracle 12c,Fedora 12下安装Oracle 11客户端

目标&#xff1a;将oracle-client(v11)安装到rdquo;/opt/oracle/rdquo;下准备好如下三个安装包&#xff0c;放在某个目录下&#xff0c;如&#xff1a;/root/software/ora目标&#xff1a;将Oracle-client(v11)安装到”/opt/oracle/”下准备好如下三个安装包&#xff0c;放在某…

轨迹跟踪主要方法_DELMIA教程:基于指令形式的机器人TCP轨迹局部跟踪方法

上一期为大家介绍了基于工具条中的“TCP Trace”命令按钮的全局TCP轨迹跟踪&#xff0c;之所以称之为全局轨迹跟踪&#xff0c;是因为只要命令被打开&#xff0c;机器人运行的全部轨迹都将实现跟踪。既然有全局TCP轨迹跟踪&#xff0c;那么就一定有局部TCP轨迹跟踪&#xff0c;…

[转帖]开源许可证GPL、BSD、MIT、Mozilla、Apache和LGPL的区别

开源许可证GPL、BSD、MIT、Mozilla、Apache和LGPL的区别 https://www.geek-workshop.com/thread-1860-1-1.htmlliamjeal电梯直达1# 发表于 2012-9-10 13:41:43 | 只看该作者 |只看大图 因CooCox用户数及影响力越来越大&#xff0c;CooCox团队也逐渐提高了对软件及代码协议的重…

oracle数据库物理结构包含,Oracle - 数据库物理结构

● 一个数据文件只能属于一个数据库● 当数据库空间用完时&#xff0c;数据文件可以按照预定的设置自动扩展。● 一个或多个数据文件形成了数据库中的一种逻辑结构-表空间。当需要时&#xff0c;数据文件中的数据通过数据库操作被读出&#xff0c;并缓存于Oracle的内存结构中。…

python审批流系统_有赞移动关于权限与审批流程的标准化

一、背景有赞移动有weex发布平台、移动配置中心平台、App分发平台、热修复平台等。这些平台都需要发布&#xff0c;而发布就需要规范化&#xff0c;需要审批制度。如果为各个平台开发这个审批流程&#xff0c;看起来是一种浪费。首先想到第一种方案&#xff1a;接入现有的前后端…

生成一个平面矩形网格文件

简介 生成一个平面矩形网格。 代码 // CreateGrid.cpp: 定义控制台应用程序的入口点。 ////#include "stdafx.h" #include <iostream> #include <OpenMesh/Core/IO/MeshIO.hh> #include <OpenMesh/Core/Mesh/TriMesh_ArrayKernelT.hh> #include<…

linux下tomcat脚本,Linux下重启多个 tomcat 服务的脚本(推荐)

由于修改tomcat的配置文件或手动操作数据库数据后&#xff0c;tomcat的缓存和redis的缓存很严重&#xff0c;需要经常重启tomcat来释放缓存&#xff0c;经常就是手动重启。# 1、查找tomcat的进程IDps -ef | grep tomcat# 2、根据路径去查找进程ID&#xff0c;然后逐个杀掉(毕竟…

qt 定时器累加值_零基础入门单片机定时器详解

一、基本定时器介绍在STM32中&#xff0c;基本定时器有TIM6、TIM7等。基本定时器主要包含时基单元&#xff0c;提供16位的计数&#xff0c;能计数0~65535。基本定时器除了计数功能以外&#xff0c;还能输出给DAC模块一个TRGO信号。基本定时器框图如下&#xff1a;二、时基单元介…

生成 一个多边形网格的函数

简介 生成一个多边形网格的函数。 三角形面片判断法线方向 顺时针&#xff0c;表示平面方向向下&#xff1f;&#xff1f; 逆时针&#xff0c;表示平面方向向上&#xff1f;&#xff1f; 代码 // AddPolygon.cpp: 定义控制台应用程序的入口点。 ////#include "stdafx.h&qu…

linux系统怎么设置开机密码,Linux_Linux系统怎么设置开机密码?Linux设置开机密码的方法,为了保证Linux系统的安全,应 - phpStudy...

Linux系统怎么设置开机密码&#xff1f;Linux设置开机密码的方法为了保证Linux系统的安全&#xff0c;应该给系统设置开机密码。注意&#xff0c;“开机密码”和“登录密码”是不同的。本文笔者就和大家分享一下“给Linux设置开机密码”的经验&#xff0c;希望能能对大家有所帮…

jvm 安装位置_简单了解JVM

1、JVM的位置&#xff1a;JVM是在操作系统上面的应用软件JVM虚拟机有三种如下&#xff1a;① Sun公司的HotSpot&#xff1b;    ② BEA公司的JRockit&#xff1b;    ③ IBM公司的J9 JVM&#xff1b;java虚拟机属于第一种&#xff1a;2、JVM的体系结构&#xff1a;3、类…

前端安全之 XSS攻击

参看&#xff1a; XSS的原理分析与解剖 前端安全 -- XSS攻击 web大前端开发中一些常见的安全性问题 1、前言 XSS 是面试时&#xff0c;hr提出来给我的&#xff0c;然后大体的浏览一遍&#xff0c;今天才查阅资料大体了解了它。 XSS 攻击&#xff1a;攻击者向HTML页面传入恶意的…

linux设置命令nmui,Linux网络配置及管理

一、IP、网关、路由、掩码网络间主机的通信是通常是基于TCP/IP协议。数据从A主机发送到网络中的B主机&#xff0c;需要通过层层包装及协议转发&#xff0c;最终通过B主机的IP地址定位&#xff0c;B主机才能最终接收到数据。这个过程很复杂&#xff0c;中间数据的处理是通过TCP/…

anaconda新建python2环境安装不了jupyterlab_在Mac下安装anaconda及配置jupyterLab和PyTorch的方法...

在Mac下安装anaconda及配置jupyterLab和PyTorch的方法1、 首先在anaconda官网上下载anaconda包(国内网速度不算太慢)https://www.anaconda.com/products/individual#macos2、 创建一个新的环境&#xff0c;用于Pytorch的学习conda create –name pytorchpython3.7标蓝部分可以换…

图片

转载于:https://www.cnblogs.com/water-1/p/11138418.html

idea 调节背景护眼_夜间用电脑亮瞎眼睛?这份夜间护眼指南来帮你。

题图&#xff1a;来自 Unsplash文/彭宏豪&#xff0c;笔名/安哥拉不知从什么时候起&#xff0c;「头秃」成了网友和周围人口中的一个高频词汇&#xff0c;似乎很多事情都离不了头秃——学到头秃、工作到头秃、熬夜到头秃等等&#xff0c;就连「突然」也渐渐演变成「秃然」。但对…

windows和linux命令的区别,linux和windows命令区别

命令的目的MS-DOSLinuxLinux 的简单实例复制文件copycpcp thisfile.txt /home/thisdirectory转移文件movemvmv thisfile.txt /home/thisdirectory列举文件dirlsLs清除屏幕clsclearClear关闭 shell 提示exitexitExit显示或设置日期datedateDate删除文件delrmrm thisfile.txt把输…