标签: mesh

Python/NumPy中meshgrid的目的是什么?

有人可以向我解释meshgridNumpy功能的目的是什么?我知道它会为绘图创建某种坐标网格,但我无法真正看到它的直接好处.

我正在学习Sebastian Raschka的"Python机器学习",他正在使用它来绘制决策边界.请参见此处的输入11 .

我也从官方文档中尝试过这段代码,但是,输出对我来说并没有多大意义.

x = np.arange(-5, 5, 1)
y = np.arange(-5, 5, 1)
xx, yy = np.meshgrid(x, y, sparse=True)
z = np.sin(xx**2 + yy**2) / (xx**2 + yy**2)
h = plt.contourf(x,y,z)
Run Code Online (Sandbox Code Playgroud)

如果可能的话,请向我展示很多现实世界的例子.

python numpy mesh multidimensional-array numpy-ndarray

253
推荐指数
7
解决办法
13万
查看次数

three.js - 网格组示例?(THREE.Object3D()高级)

我试图了解如何将子网格分组/链接到父级.我希望能够:

  • 拖动父级
  • 相对于父元素旋转子元素
  • 让父母轮换/翻译为孩子做正确的事

我唯一的背景是在Second Life中使用LSL来操作对象中的链接prims.我想我不想合并网格,因为我想保持对每个孩子的控制(悬停,纹理,旋转,缩放等).

有关于此的任何好的教程吗?用THREE.Object3D()实现这个,是吗?

谢谢,丹尼尔

mesh object parent-child three.js

36
推荐指数
2
解决办法
5万
查看次数

如何在THREE.js中获取网格的宽度/高度/长度

我一直在研究各种各样的地方,试图获得网格的宽度和高度,但我已经能够找到任何有用的东西.我有一个我导入的collada模型,我想要做的就是在Webgl/Three.js单位中获取它的尺寸,以便我可以在我的简单游戏中计算碰撞.那么我如何在THREE.js中获取网格的宽度和高度呢?

javascript mesh collada three.js

36
推荐指数
1
解决办法
2万
查看次数

Android OpenGL .OBJ文件加载器

似乎有很多OBJ网格文件加载器已经开发出来供Android平台上使用.我想知道是否有人有这方面的经验,并可以提供一个似乎最适合他们的建议.

这是我的标准:

  • 轻量级(小文件大小),
  • 优化速度,
  • 易于实施,
  • 提供某种纹理映射支持(不确定我是否需要这个 - 在我的编码中没有足够的知识来知道我是否需要一个库来执行此操作,或者OpenGL ES是否能够完成我需要的所有工作在这里)和
  • 可用于商业销售的Android应用.

以下是我发现的一些库.

我也很乐意听到不在此列表中的其他人.

3d android opengl-es mesh

31
推荐指数
2
解决办法
6万
查看次数

程序上生成球体网格

我正在寻找一种生成球形网格的3d坐标的算法(伪代码),如下所示:

替代文字

水平和横向切片的数量应该是可配置的

3d mesh

26
推荐指数
1
解决办法
2万
查看次数

Python中的最小表面解决方案

我有一组定义3D轮廓的3D点.我想要做的是获得与此轮廓相对应的最小曲面表示(请参阅维基百科中的最小曲面).基本上这需要求解非线性偏微分方程.

在Matlab中,使用该pdenonlin函数几乎是直截了当的(参见Matlab的文档).可以在此处找到用于解决最小表面问题的示例:单位磁盘上的最小表面问题.

我需要在Python中实现这样的实现,但我知道我还没有找到任何关于如何实现这一目标的Web资源.

任何人都可以指出这种实施的任何资源/例子吗?

谢谢,米格尔.

UPDATE

我想要找到的3D表面(理想情况下是三角形网格表示)受这组3D点的限制(如图所示,这些点位于最佳拟合平面中):

在此输入图像描述

好吧,做一些研究我发现这个最小的表面问题与双调和方程的解决方案有关,我还发现薄板样条是这个方程的基本解.

所以我认为这种方法是尝试使用薄板样条来拟合表面的稀疏表示(由点的3D轮廓给出).我在scipy.interpolate中找到了这个例子,其中使用薄板样条插值散射数据(x,y,z格式)以获得均匀网格(XI,YI)上的ZI坐标.

出现两个问题:(1)薄板样条插值是否是从三维轮廓点集计算表面问题的正确方法?(2)如果是这样,如何使用NON-UNIFORM网格在scipy上执行薄板插值?

再次感谢!米格尔

更新:MATLAB中的实现(但它不适用于SCIPY PYTHON)

我使用Matlab的函数跟踪了这个例子,tpaps并在均匀网格上获得了适合我轮廓的最小曲面.这是Matlab的结果(看起来很棒!): 在此输入图像描述

但是我需要在Python中实现它,所以我使用包scipy.interpolate.Rbf和thin-plate函数.这是python中的代码(XYZ包含轮廓中每个点的3D坐标):

GRID_POINTS = 25
x_min = XYZ[:,0].min()
x_max = XYZ[:,0].max()
y_min = XYZ[:,1].min()
y_max = XYZ[:,1].max()
xi = np.linspace(x_min, x_max, GRID_POINTS)
yi = np.linspace(y_min, y_max, GRID_POINTS)
XI, YI = np.meshgrid(xi, yi)

from scipy.interpolate import Rbf
rbf = Rbf(XYZ[:,0],XYZ[:,1],XYZ[:,2],function='thin-plate',smooth=0.0)
ZI = rbf(XI,YI)
Run Code Online (Sandbox Code Playgroud)

然而,这是结果(与Matlab中获得的结果完全不同):

在此输入图像描述

很明显,scipy的结果与最小的表面不对应. …

python geometry interpolation mesh differential-equations

23
推荐指数
1
解决办法
4335
查看次数

一个很好的3D网格库

我正在寻找一个好的3D网格库

  • 应该能够阅读流行的格式(OFF,OBJ ......)
  • 应该支持半边结构和三角汤
  • 应该容忍故障和非法网格.
  • 基本几何操作 - 交叉点,正常计算等
  • 最重要的是 - 不应该使用无限的模板和继承层次结构.

我已经尝试了CGAL和OpenMesh,但在最后一点都失败了.

特别是CGAL,即使使用最先进的代码分析工具也无法遵循.

到目前为止,我正在认真考虑拉自己的.

我的偏好是C++,但我对其他选项持开放态度.

math 3d graphics mesh

20
推荐指数
1
解决办法
1万
查看次数

从点云生成三角形网格的算法

在一些模拟程序中,我们根据点生成对象表面,每个点具有3D坐标,并且向量表示该点处表面的法线.出于可视化目的,我们希望生成由三角形组成的网格; 每三个关闭点形成一个正常的三角形.然后我们可以将这些信息发送到一些标准的可视化程序,这些程序可以像VMD(Visual Molecular Dynamics)一样呈现表面.

我们想知道哪个是最快/可用的算法.

algorithm geometry point mesh

20
推荐指数
3
解决办法
3万
查看次数

如何用Three.js改变CubeGeometry的宽度?

我有一个立方体几何和一个网格,我不知道如何改变宽度(或高度......我可以改变x,y和z).这是我现在所拥有的片段:

geometry = new THREE.CubeGeometry( 200, 200, 200 );
material = new THREE.MeshBasicMaterial( { color: 0xff0000, wireframe: true } );
mesh = new THREE.Mesh( geometry, material );
// WebGL renderer here

function render(){
    mesh.rotation.x += 0.01;
    mesh.rotation.y += 0.02;
    renderer.render( scene, camera );
}

function changeStuff(){
    mesh.geometry.width = 500; //Doesn't work.
    mesh.width = 500; // Doesn't work.
    geometry.width = 500; //Doesn't work.
    mesh.position.x = 500// Works!!

    render();
}
Run Code Online (Sandbox Code Playgroud)

谢谢!

编辑

找到了解决方案:

mesh.scale.x = 500;
Run Code Online (Sandbox Code Playgroud)

animation mesh three.js

17
推荐指数
2
解决办法
2万
查看次数

将3d网格分解为2d网络

假设您有一个3维对象,以某种常见文件格式表示为3d网格.你将如何设计一种算法将网格分解为一个或多个2d'网' - 也就是说,可以剪切和折叠以创建原始3d对象的二维表示.

除此之外,该算法还需要考虑:

  • 对任何给定对象进行多次可能的分解
  • 处理将网格装配到固定尺寸的画布(纸张).
  • 识别网中的两个面板何时重叠(因此无效).
  • 由于重叠或页面大小限制,如果网格无法表示为单个网格,则将网格分成多个网络.
  • 在适当的位置生成制表符,用于附加相邻的面.

明显的退化情况就是每面创建一个网,边缘有一半.这显然不是理想的:理想的情况是单个连续网.复杂形状的现实很可能在中间.

我意识到找到最佳网络(最少网络/最少页面)可能计算成本很高,但是找到"足够好"的网络的良好启发式就足够了.

algorithm 3d graphics mesh

16
推荐指数
2
解决办法
7527
查看次数