# -*- 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)
没有合适的资源?快使用搜索试试~ 我知道了~
open3d体积计算 体素计算
共8个文件
obj:5个
py:3个
需积分: 5 1 下载量 198 浏览量
2024-06-07
12:01:24
上传
评论
收藏 3KB ZIP 举报
温馨提示
python open3d体积计算 体素计算
资源推荐
资源详情
资源评论
收起资源包目录
slz5.zip (8个子文件)
02_vol_open3d.py 3KB
slz4.obj 139B
slz3.obj 147B
slz5.obj 131B
03_vol_intergration.py 2KB
slz2.obj 147B
01_vol_trimesh.py 2KB
slz1.obj 147B
共 8 条
- 1
资源评论
lishiyu_hebei
- 粉丝: 2
- 资源: 15
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功