首页 > 其他分享 >绘制ply模型顶点的法线(通过两点)

绘制ply模型顶点的法线(通过两点)

时间:2024-08-28 13:52:32浏览次数:11  
标签:法线 end point vertices ply start mesh 顶点

import trimesh
import matplotlib.pyplot as plt

# 读取点云文件
mesh = trimesh.load_mesh('test.ply')

# 计算法线
mesh.vertex_normals

# 创建一个新的图形窗口
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')

# 绘制顶点
ax.scatter(mesh.vertices[:, 0], mesh.vertices[:, 1], mesh.vertices[:, 2], c='b', s=0.5, marker='o')

# 绘制法线
for i in range(len(mesh.vertices)):
    start_point = mesh.vertices[i]
    end_point = mesh.vertices[i] + mesh.vertex_normals[i] * 10
    ax.plot([start_point[0], end_point[0]], [start_point[1], end_point[1]], [start_point[2], end_point[2]], linewidth=2)
      if i > 100:             break
# 显示图形
plt.show()

效果如下:

 

标签:法线,end,point,vertices,ply,start,mesh,顶点
From: https://www.cnblogs.com/hxqmw/p/18384508

相关文章

  • 计算ply模型的法线及显示
    importopen3daso3dimportnumpyasnp#加载点云数据pcd=o3d.io.read_point_cloud("test.ply")#设置法线估计的搜索参数search_param=o3d.geometry.KDTreeSearchParamHybrid(radius=0.1,max_nn=30)#计算点云的法线pcd.estimate_normals(search_param=search_......
  • 顶点染色算法的matlab程序详解
    #################本文为学习《图论算法及其MATLAB实现》的学习笔记#################算法用途给出简单图的染色数尽可能少的顶点染色方案算法思想从顶点度数最小的顶点开始染色,找到不与其相邻的顶点并选择其中一个顶点进行染色,再找与这两个顶点都不相邻的顶点集合,并对其中......
  • 信息学奥赛初赛天天练-72-NOIP2016普及组-基础题3-无向图、简单无向图、自环、平行边
    NOIP2016普及组基础题35以下不是存储设备的是()A光盘B磁盘C固态硬盘D鼠标6如果开始时计算机处于小写输入状态,现在有一只小老鼠反复按照CapsLock、字母键A、字母键S、字母键D、字母键F的顺序循环按键,即CapsLock、A、S、D、F、CapsLock、A、S、D、F......
  • QT+OpenGL从顶点着色器传递颜色数据给片元着色器
    一、概述目的:1.定义顶点数据和颜色数据,并将颜色数据通过顶点着色器传递给片元着色器2.对定义的三角形动态进行:平移、颠倒、镜像二、示例代码1.定义顶点坐标和颜色值。此处颜色和顶点是放到一块的。需要告知GPU如何解析数据,如:哪些是顶点,哪......
  • QT+OpenGL使用一组顶点绘制两个三角形
    一、概述需求:使用一组顶点坐标绘制两个三角形。ps:此需求和绘制一个三角形并没有什么不同,只是把顶点坐标由三个改成了6个。依次类推,如果想要绘制多边形或者更多的三角形,只需要定义不同的顶点就行了。效果:二、代码示例1.定义顶点floatvertices[18]={......
  • df['料品分类'].apply(format_value) 是一个 Pandas 操作,用于对 DataFrame 中的 '料品
    df['料品分类'].apply(format_value)是一个Pandas操作,用于对DataFrame中的'料品分类'列的每个值应用一个名为format_value的函数,并将处理后的结果返回给这一列。分解解释df['料品分类']:这部分代码选择DataFramedf中名为'料品分类'的列。df是一个PandasDat......
  • [Web Component] using `part` to allow applying styling from outside the shadow D
    Let'ssaywehaveawebcomponent: import{getProductById}from"../services/Menu.js";import{addToCart}from"../services/Order.js";exportdefaultclassDetailsPageextendsHTMLElement{constructor(){super();......
  • k8s中apply资源文件和replace资源文件的区别
    v1.29.2版本的k8s中资源对象api-resource一共有75种,比如pod,serverice等等创建资源对象的时候,一般是写资源对象文件,里面主要字段是kind\apiVersion\metadata\spec\status在我们使用资源对象文件创建资源实例的时候经常用到kubectlapply-f resourcefilename.yamlkube......
  • PCL 法线微分分割(Don)
    1.原理对于点云中的每个点云点P,使用一大一小两个半径计算该点的两个法向量,然后用两个单位法向量的差异计算Don特征。如下图:图1为大半径计算得到的法向量;图2为小半径计算得到的法向量;图3为一大一小两个法向量计算得出的Don特征。步骤:(1)建KD树,计算点云平均密度(即点云点之间......
  • OpenGL ES->GLSurfaceView着色器程序中传递顶点数组和颜色数组绘制渐变三角形
    自定义View代码classMyGLSurfaceView(context:Context,attrs:AttributeSet):GLSurfaceView(context,attrs){init{//设置OpenGLES3.0版本setEGLContextClientVersion(3)//设置当前类为渲染器,注册回调接口的实现类......