# -*- coding: utf-8 -*-
'''
CSDN博客:https://blog.csdn.net/suiyingy
乐乐感知学堂公众号
长期分享三维、二维感知、大模型等AI算法和demo以及金融量化分析算法等。
本程序作用:open3d体积计算
专栏地址:https://blog.csdn.net/suiyingy/category_12462636.html
'''
import numpy as np
import open3d as o3d
if __name__ == '__main__':
vertices = np.array([[0.0, 0.0, 0.0], [3.0, 0.0, 0.0], [0.0, 4.0, 0.0], [0.0, 0.0, 5.0], [3.0, 0.0, 5.0], [0.0, 4.0, 5.0]])
faces = np.array([[1, 3, 2], [2, 3, 5], [5, 3, 6], [1, 4, 3], [3, 4, 6], [1, 2, 4], [2, 5, 4], [4, 5, 6]])
faces = faces - 1 # 减1是因为索引从0开始
# 创建TriangleMesh对象
mesh = o3d.geometry.TriangleMesh()
# 设置顶点和面片
mesh.vertices = o3d.utility.Vector3dVector(vertices)
mesh.triangles = o3d.utility.Vector3iVector(faces)
# 计算三角网格的体积
volume = mesh.get_volume()
# 输出体积结果
print("volume1:", volume)
# 改变两个底面顶点顺序
faces = np.array([[1, 2, 3], [2, 3, 5], [5, 3, 6], [1, 4, 3], [3, 4, 6], [1, 2, 4], [2, 5, 4], [4, 6, 5]])
faces = faces - 1 # 减1是因为索引从0开始
mesh = o3d.geometry.TriangleMesh()
mesh.vertices = o3d.utility.Vector3dVector(vertices)
mesh.triangles = o3d.utility.Vector3iVector(faces)
volume = mesh.get_volume()
print("volume2:", volume)
# 改变两个底面和一个侧面顶点顺序
faces = np.array([[1, 2, 3], [3, 2, 5], [5, 3, 6], [1, 4, 3], [3, 4, 6], [1, 2, 4], [2, 5, 4], [4, 6, 5]])
faces = faces - 1 # 减1是因为索引从0开始
mesh = o3d.geometry.TriangleMesh()
mesh.vertices = o3d.utility.Vector3dVector(vertices)
mesh.triangles = o3d.utility.Vector3iVector(faces)
volume = mesh.get_volume()
print("volume3:", volume)
# 删掉一个底面
faces = np.array([[2, 3, 5], [5, 3, 6], [1, 4, 3], [3, 4, 6], [1, 2, 4], [2, 5, 4], [4, 5, 6]])
faces = faces - 1 # 减1是因为索引从0开始
mesh = o3d.geometry.TriangleMesh()
mesh.vertices = o3d.utility.Vector3dVector(vertices)
mesh.triangles = o3d.utility.Vector3iVector(faces)
volume = mesh.get_volume()
print("volume4:", volume)
# 再删掉一个底面
faces = np.array([[2, 3, 5], [5, 3, 6], [1, 4, 3], [3, 4, 6], [1, 2, 4], [2, 5, 4]])
faces = faces - 1 # 减1是因为索引从0开始
mesh = o3d.geometry.TriangleMesh()
mesh.vertices = o3d.utility.Vector3dVector(vertices)
mesh.triangles = o3d.utility.Vector3iVector(faces)
volume = mesh.get_volume()
print("volume5:", volume)
Coding的叶子
- 粉丝: 5w+
- 资源: 45
最新资源
- 基于Go和React的高质量企业微信私域流量管理系统 。遵守Apache2.0协议,全网唯一免费商用。企业微信、私域流量、SCRM。详细文档+优秀项目+全部资料.zip
- 基于Go和React的企业微信的开源 SCRM 系统。企微,个微,微信,聚合聊天,自动回复,加好友。详细文档+优秀项目+全部资料.zip
- 基于go语言的搜索引擎,信息检索系统详细文档+优秀项目+全部资料.zip
- 基于Go语言,Beego框架开发的简单的文章发布管理系统。详细文档+优秀项目+全部资料.zip
- 基于Go语言的轻量级高性能的分布式日志系统详细文档+优秀项目+全部资料.zip
- 基于go语言简单的用户管理系统详细文档+优秀项目+全部资料.zip
- 基于Go语言的一个秒杀系统详细文档+优秀项目+全部资料.zip
- 基于Go语言的一个简易blog系统详细文档+优秀项目+全部资料.zip
- 基于Go语言开发,具备高安全性、高性能和易扩展性的企业级内容管理系统,详细文档+优秀项目+全部资料.zip
- 基于Go语言实现的单点登录系统详细文档+优秀项目+全部资料.zip
- 基于Go语言实现的微服务电商系统详细文档+优秀项目+全部资料.zip
- 基于python和sql server2014做的商品学生信息管理系统,有界面,利用的sql server数据库详细文档+优秀项目+全部资料.zip
- 基于OWTP协议库,封装所有与openw-server钱包服务API交互方法。用于集成到go语言开发下的应用方系统。详细文档+优秀项目+全部资料.zip
- 基于Quasar和Go语言的功能全面的管理系统详细文档+优秀项目+全部资料.zip
- 基于SpringBoot 开发的员工的季度绩效考核系统详细文档+优秀项目+全部资料.zip
- 四足机器人技术发展及其应用场景概述
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈