Matplotlib 类似于 matlab trisurf

2023-12-13

长话短说,我想用 python 绘制一个通用的 3D 三角形网格。 Matplotlib 似乎是理想的候选者,但我会选择任何可以实现我将要描述的功能的 3D 渲染。

假设我有一个由 X、Y 和 Z 定义的三角形网格,点云的 3D 坐标,每个长度为 n 的向量,以及 UVW,一个 2D m-x-3 矩阵,其中每一行都是索引的三元组点云。这个三元组代表一个单独的三角形。换句话说,我在 n 个点上有 m 个三角形。在 Matlab 中,要生成 3D 绘图,我只需执行以下操作:

trisurf(UVW, X, Y, Z)

有人对这个有经验么?特别是,mplots trisurf 可以硬塞进去工作吗?


根据戴维斯的评论,根据您的性能需求,mayavi 可能最适合此操作。

然而,matplotlib 附带绘图_trisurf你可以完美地传递通用的UVW, X, Y , Z正如你所描述的。

环面网格示例:

import numpy as np
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import matplotlib.tri as mtri

R = 1.
r = 0.8
n = 50
m = 50

def torus_triangles(n, m):
    """ Returns triangles to mesh a (n, m) torus """
    tri = []
    for i in range(n):
        for j in range(m):
            a = i + j*(n)
            b = ((i+1) % n) + j*n
            d = i + ((j+1) % m) * n
            c = ((i+1) % n) + ((j+1) % m) * n
            tri += [[a, b, d], [b, c, d]]
    return np.array(tri, dtype=np.int32)

theta0 = np.linspace(0, (2*np.pi), n, endpoint=False)
phi0 = np.linspace(0, (2*np.pi), m, endpoint=False)
theta, phi = np.meshgrid(theta0, phi0)

x = (R + r * np.sin(phi)) * np.cos(theta)
y = (R + r * np.sin(phi)) * np.sin(theta)
z = r * np.cos(phi)

triangles = torus_triangles(n , m)
triang = mtri.Triangulation(x.ravel(), y.ravel(), triangles)

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.plot_trisurf(triang, z.ravel(), lw=0.2, edgecolor="black", color="grey",
                alpha=0.5)

plt.show()

enter image description here

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Matplotlib 类似于 matlab trisurf 的相关文章

随机推荐

  • 使用 sqoop 导入 Hive 时出现文件存在错误

    我正在尝试将 Retail db 数据库表复制到我已经创建的 Hive 数据库中 当我执行以下代码时 sqoop import all tables num mappers 1 connect jdbc mysql quickstart c
  • 从连接表中过滤

    我在执行一个棘手的 SQL 查询时遇到了一些麻烦 在我的 MySQL 数据库中 有主题表 标签和标签主题来连接它们 我想获取共享相同指定标签的主题 例如 假设我有 3 个标签 id 分别为 1 2 和 3 我想获取与标签 1 2 和 3 关
  • JavaScript 定时器

    我正在尝试使以下 JavaScript 计时器只需单击一个按钮即可执行两个功能 一旦计时器启动 请单击 再次点击 它停止了 单击第三次 它会再次启动 依此类推 我在这里做错了什么 预先非常感谢您
  • Python列表理解-访问最后创建的元素

    是否可以访问 a 中生成的前一个元素列表理解 我正在研究一些玩具加密的东西 将密钥指定为任意大整数 初始化值和元素列表作为要加密的消息 我需要将每个元素与前一个加密元素和密钥进行异或 下面的循环就可以了 previous initializ
  • 由于大文件上传而重置连接,但配置应允许上传

    我在尝试在 MVC 项目中上传大于 4 兆的文件时遇到错误 对于较小的文件 上传效果很好 在网上查了一下 我发现我应该添加
  • Rails 3 - 如何处理 PG 错误不完整的多字节字符

    在 Rails 3 2 应用程序 Ruby 1 9 2 中 我收到以下错误 mobile users update 中发生 PGError 不完整的多字节字符 这些是 Postgres 错误 但是在开发和测试模式下测试时我遇到类似的 SQL
  • 如何避免db not close和cursor异常

    02 02 14 31 34 048 WARN SQLiteCompiledSql 359 Releasing statement in a finalizer Please ensure that you explicitly call
  • 修复 StackOverflow 错误

    我开发了一个应用程序 其中有 4 个选项卡 A B C D 每个选项卡都包含一个活动 在第四个选项卡 D 中 我添加了一个 ActivityGroup 其中还有 3 个活动 X Y Z 在第四个选项卡中 我添加了活动组 但出现 StackO
  • 保持输入占位符始终可见

    我正在尝试对网站中的所有输入进行样式设置 当它们具有值或具有焦点时 占位符将成为输入的标题 它移动到输入的顶部 但浏览器的默认行为会隐藏当有数据时占位符 我真的想远离 JS 解决方案 当前结果 我的CSS input focus webki
  • Java Manifest.mf 类路径问题

    我一直在尝试运行一个 jar 文件 我们称之为 test jar 它在 Unix 系统上使用 Sybase jconn3 jar 我创建了一个 MANIFEST MF 文件 其中包含以下内容 Class Path SYBASE jConne
  • 如何从不同的 main 方法调用 Cucumber 运行程序类

    我是使用命令行界面的新手 所以我只是有一个关于如何使用 CLI 技术调用 Cucumber 的 runner 类的问题 我有一个 Java 程序 其中包含一个 main 方法 当测试人员传递测试用例参数时 它将获取功能文件 java 程序调
  • 使用 Spring Cloud Config 重新启动 HikariCP

    我最近将我的应用程序配置为使用 Spring Cloud Config 和 Github 作为配置存储库 Spring Boot 2 1 1 RELEASE Spring Cloud 依赖项 Greenwich RC2 我的应用程序几乎使用
  • 在iOS10中,是否可以从静态库/框架内访问钥匙串,以进行单元测试

    在 Xcode 8 iOS 10 之前 我能够从静态库的单元测试中访问钥匙串 升级后 出现错误 请参阅堆栈跟踪 failed caught NSInternalInconsistencyException Couldn t add the
  • android中应用程序升级到新版本时如何保留全局变量?

    在我的 Android 应用程序中 用户必须通过同意提供电子邮件 ID 的条款和条件来注册 如果用户将应用程序升级到下一个版本 我不应该收到协议页面或电子邮件注册窗口 我使用全局变量控制它 但如果用户将应用程序升级到较新的版本 全局变量将被
  • PHP:使用 simplexml 循环遍历 XML 文件的所有级别

    我有一个函数 它使用 simplexml 返回 XML 文件中的第一级节点并将其写入无序列表 function printAssetMap xml simplexml load file X ASSETS assets xml gt ass
  • 如何选择sql复杂查询where Condition And or [关闭]

    Closed 这个问题需要细节或清晰度 目前不接受答案 我的桌子是 ID ATTRID VALSTR 1771373 1 1234 1771373 3 510 1771373 7 2016 1771373 8 05 1777623 3 50
  • codeIgniter使用mysql_real_escape_string()代替。数据库连接问题

    我在带有数据库的服务器上安装了代码点火器 我想在我的 mac 上运行相同的数据库 我使用 MAMP 并将项目文件夹复制到 htdocs 中 但出现此错误 请你帮帮我好吗 ErrorException 8192 mysql escape st
  • Angular 2:无法绑定到“ngModel”,因为它不是“input”的已知属性

    我正在尝试在 Angular 2 中实现动态表单 我向动态表单添加了删除和取消等附加功能 我已经遵循了这个文档 https angular io docs ts latest cookbook dynamic form html 我对代码做
  • 无法在 azure 机器学习服务工作区中注册 ONNX 模型

    我尝试以两种不同的方式将 ONNX 模型注册到 Azure 机器学习服务工作区 但遇到无法解决的错误 第一种方法 通过 Jupyter Notebook 和 python 脚本 model Model register model path
  • Matplotlib 类似于 matlab trisurf

    长话短说 我想用 python 绘制一个通用的 3D 三角形网格 Matplotlib 似乎是理想的候选者 但我会选择任何可以实现我将要描述的功能的 3D 渲染 假设我有一个由 X Y 和 Z 定义的三角形网格 点云的 3D 坐标 每个长度