1.off文件格式
Object File Format(off)文件通过描述物体表面的多边形来表示一个模型的几何结构。这些多边形可以包含任意数量的顶点。

1)off文件为ASCII文件,以OFF关键字开头
2)下一行是该模型的顶点数,面数和边数。边数可以忽略,对模型不会有影响(可以为0)
3)顶点以x,y,z坐标列出,每个顶点占一行
4)在顶点列表之后是面列表,每个面占一行。对于每个边,首先指定其包含的顶点数,随后是这个面所包含的各顶点在前面顶点列表中的索引

即以下格式:

OFF

顶点数 面数 边数

x y z

n个顶点 顶点1的索引 顶点2的索引 … 顶点n的索引

下面是一个立方体的例子:

OFF
8 6 0
-0.400000 -0.500000 0.500000
0.500000 -0.500000 0.500000
-0.500000 0.700000 0.500000
0.500000 0.500000 0.500000
-0.500000 0.500000 -0.500000
0.500000 0.500000 -0.800000
-0.500000 -0.500000 -0.500000
0.500000 -0.400000 -0.500000
4 0 1 3 2
4 2 3 5 4
4 4 5 7 6
4 6 7 1 0
4 1 7 5 3
4 6 0 2 4

#include <stdio.h>
#include <string>
#include <vector>
#include <Eigen/Eigen>class Cube {
public:int NVertices = 8;int NFaces = 6;int NEdges = 0;std::vector<Eigen::Vector3d> Vertices;std::vector<Eigen::Vector4i> NFaces;void Init();
}
void Cube::Init() {Vertices.resize(8);Vertices[0] << -0.500000 -0.500000 0.500000;Vertices[1] << 0.500000 -0.500000 0.500000;Vertices[2] << -0.500000 0.500000 0.500000;Vertices[3] << 0.500000 0.500000 0.500000;Vertices[4] << -0.500000 0.500000 -0.500000;Vertices[5] << 0.500000 0.500000 -0.500000;Vertices[6] << -0.500000 -0.500000 -0.500000;Vertices[7] << 0.500000 -0.500000 -0.500000;Edges.resize(6);Edges[0] << 0 1 3 2;Edges[1] << 2 3 5 4;Edges[2] << 4 5 7 6;Edges[3] << 6 7 1 0;Edges[4] << 1 7 5 3;Edges[5] << 6 0 2 4;
}int main() {std::string off_file_path = "/home/alan/cube.off";FILE *f = fopen(off_file_path.c_str(), "w");if(f == nullptr){std::cout << "Cannot open file: " << off_file_path;}Cube cube;cube.Init();fprintf(f, "COFF\n");fprintf(f, "%d %d %d\n", cube.NVertices, cube.NFaces, cube.NEdges);for (const auto& vertice : cube.Vertices) {fprintf(f, "%lf %lf %lf %lf %lf %lf %lf\n",vertice.x(), vertice.y(), vertice.z(), 0.8, 0.8, 0.8, 1.0); // 颜色信息(R,G,B,[A]),整数0~255或小数0.0~1.0}for (const auto& face : cube.NFaces) {fprintf(f, "4 %d %d %d %d\n",face[0], face[1], face[2], face[3]);}fclose(f);
}

off文件的格式(完善)相关推荐

  1. 数字电视制播设备间的文件交换格式

    在现今的数字电视演播室中,设备之间基本上采用信号流连接方式,如SDI.STDI.模拟YUV.VBS等信号流.在非线性编辑系统和播出系统与服务器之间的连接,还有基于MPEG-2传输流等的信号连接方式.基 ...

  2. 在window下使用gemsim.models.word2vec.LineSentence加载语料库文件的格式要求

    在window下使用gemsim.models.word2vec.LineSentence加载语料库文件的格式要求 class LineSentence(object):""&qu ...

  3. txt或者csv数据文件的格式是有要求的,如下shell代码中说明。

    项目使用Oracle数据库,项目开发完成后,由于遗留系统的定制关系需要导入到库中,因为是一次性的,所有没有必要提供页面导入,决定使用Oracle提供的功能直接导入到Oracle库表中. txt或者cs ...

  4. php 显示要上传的图片格式,php判断文件上传图片格式的实例详解

    php判断文件上传图片格式的实例详解 判断文件图片类型, $type = $_FILES['image']['tmp_name'];//文件名 //$type = $this->getImage ...

  5. 浅谈网络游戏《天龙X部》的文件加密格式

    三月份时玩了某狐公司的网络游戏<天龙X部>,感觉还是蛮有意思的,遂研究了一下. 这个游戏是利用开源游戏引擎OGRE进行开发的,看了一下目录里面的文件结构,主要的数 据都放在Data目录下面 ...

  6. MANIFEST.MF文件的格式

    MANIFEST.MF文件的格式 1. 基本格式 属性名称+:+空格+属性值 2. 没行最多72个字符,换行继续必须以空格开头 3. 文件最后必须要有一个回车换行 4. Class-Path 当前路径 ...

  7. ML之FE:基于FE特征工程对RentListingInquries数据集进行预处理并导出为三种格式文件(csv格式/txt格式/libsvm稀疏txt格式)

    ML之FE:基于FE特征工程对RentListingInquries数据集进行预处理并导出为三种格式文件(csv格式/txt格式/libsvm稀疏txt格式) 目录 输出结果 设计思路 核心代码 输出 ...

  8. (转)浅析当今视频文件的格式

    最近工作中需要接触到视频,虽然简单,但趁这个机会复习下,因此收集了些资料,现转载如下,简单介绍了目前的一些视频等的一些格式 一.影像视频格式 人们日常生活中接触较多的VCD(Video CD:数字小型 ...

  9. redis aof文件的格式 以及如何批量写入大量redis数据

    aof文件的格式 如何能批量写入大量的redis数据 可以通过手写aof文件来写入. aof文件格式 *3 $3 set $3 we3 $4 1234 第一行的*3代表这个命令有三个参数 第二行的$3 ...

最新文章

  1. 微信公众号可快速创建“门店小程序” 不用开发
  2. 利用OpenCV的findContours作轮廓检测
  3. linux导入函数包失败,使用qsub运行shellscript时出现apos;文件意外结束apos;和apos;错误导入函数定义apos;错误 中国服务器网...
  4. [OS复习]文件管理
  5. 微服务集成cas_Spring Boot + Solr 全文检索微服务简易集成
  6. idea 调试远程tomcat
  7. 智能手机进化史——全·全面屏时代回看诺基亚N9
  8. 17_多易教育之《yiee数据运营系统》用户画像-技术架构方案篇
  9. 亚马逊云科技成为Meta关键长期战略云服务提供商;触宝科技延伸业务布局聚焦元宇宙 | 全球TMT...
  10. 简单谈谈对软件工程的理解
  11. 使用webpack搭建vue项目;webpack+vue
  12. PLSQL下载、安装、配置、连接详细教程
  13. debian中修改freeswitch的 sip默认端口,防盗打
  14. 符号配对(C语言利用栈堆)
  15. matlab iri模型,IRI2012电离层模型 matlab代码
  16. MS WORD 无法修改标题级别的解决方案
  17. K2 BPM_K2签约龙光地产,为集团实现“千亿目标”保驾护航_全球领先的工作流引擎...
  18. Polyline Simplification(多线段简化/离散采样)
  19. python打印日历_python输出指定月份日历的方法
  20. 虎牙弹幕器(自动发弹幕,导入导出文件,检测是否发出,自动化工具加虎牙人气)(具有图形化界面)

热门文章

  1. php做一个微信退款,php如何实现微信小程序支付及退款
  2. calc与cacls,两个容易混淆的命令
  3. 1320二指输入的最小距离
  4. SAT数学解题方法:逻辑推理
  5. kickstart 自动安装 CentOS7
  6. Linux模板机及集群相关操作整理
  7. 私有仓库Harbor介绍与部署
  8. 红外模块 51单片机
  9. explain使用方法及结果分析
  10. java getsour_Java MouseEvent.getSource方法代碼示例