- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我刚刚开始在 Python 中使用 OpenMesh。我首先尝试制作一个由单个四边形组成的 PolyMesh。这就是我所做的:
from openmesh import *
mesh = PolyMesh();
vh0 = mesh.add_vertex(PolyMesh.Point(0,0,0));
vh1 = mesh.add_vertex(PolyMesh.Point(1,0,0));
vh2 = mesh.add_vertex(PolyMesh.Point(1,1,0));
vh3 = mesh.add_vertex(PolyMesh.Point(0,1,0));
vh_list = [vh0, vh1, vh2, vh3];
fh0 = mesh.add_face(vh_list);
这将创建一个四边形网格。然后,想要对四边形进行一次细化,我想尝试一下:
vh4 = mesh.add_vertex(PolyMesh.Point(0.5,0,0));
vh5 = mesh.add_vertex(PolyMesh.Point(0.5,1,0));
vh_list = [vh4, vh1, vh2, vh5];
fh1 = mesh.add_face(vh_list);
上面给出了一个复杂边缘
错误。我从 SO 的其他问题中了解到,这是因为第二种情况下的 vh_list 没有定义与第一个面一致的方向。然而,我不想添加新面孔。也就是说,我认为该操作只是在 x = 0.5 处分割 fh0,而不是在边缘索引 1 处创建附加到 fh0 的新面。有人能说说如何做到这一点吗?我在文档中找不到“split_face”函数。
此外,如何在 Python 中访问特定边/网格组件的句柄? (我只找到了 C++ 的答案。)例如,我知道我可以使用以下方法迭代边缘:
for eh in mesh.edges():
但是我如何直接获取边缘 2 的句柄并按如下方式使用它?
mesh.split_edge(eh,vh5)
谢谢!
编辑 1
我在 OpenMesh 文档中找到了函数 split
,但它需要一个顶点句柄作为输入,我可以在该顶点句柄上分割面。分割后,它将网格转换为三角形网格。我不想要这个。我想在 x = 0.5 处将四边形分成两个四边形。谢谢。
编辑2
我尝试了另一种方法:首先删除 fh0,然后根据我想要的细化添加两个新面孔 fh0 和 fh1。我尝试做
mesh.delete_face(fh0)
Python 出现段错误并退出。
最佳答案
如果您想将面 fh0
拆分为两个面,您应该先删除 fh0
,然后创建两个新面。这应该可以完成工作:
mesh.delete_face(fh0, deleted_isolated_vertices = False)
mesh.garbage_collection()
fh0 = mesh.add_face(vh0,vh4,vh5,vh3)
fh1 = mesh.add_face(vh4,vh1,vh2,vh5)
要验证您是否获得了所需的结果,请请求 print(mesh.face_vertex_indices())
,您应该获得两个列表,其中列出了每个面的顶点索引。
此外,要访问已知的边缘句柄,您可以使用
eh = mesh.edge_handle(edge_index)
其中 edge_index
是 int
,您感兴趣的边缘的索引。
希望这有帮助,
查尔斯。
关于python - Openmesh:如何修改网格面? (以及如何随机访问组件句柄?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47007392/
关闭。这个问题是opinion-based 。目前不接受答案。 想要改进这个问题吗?更新问题,以便 editing this post 可以用事实和引文来回答它。 . 已关闭 4 年前。 Improv
PowerShell Web Access 允许您通过 Web 浏览器运行 PowerShell cmdlet。它显示了一个基于 Web 的控制台窗口。 有没有办法运行 cmdlet 而无需在控制台窗
我尝试在无需用户登录的情况下访问 Sharepoint 文件。 我可以通过以下任一方式获取访问 token 方法一: var client = new RestClient("https://logi
我目前正在尝试通过 Chrome 扩展程序访问 Google 服务。我的理解是,对于 JS 应用程序,Google 首选的身份验证机制是 OAuth。我的应用目前已成功通过 OAuth 向服务进行身份
假设我有纯抽象类 IHandler 和派生自它的类: class IHandler { public: virtual int process_input(char input) = 0; };
我有一个带有 ThymeLeaf 和 Dojo 的 Spring 应用程序,这给我带来了问题。当我从我的 HTML 文件中引用 CSS 文件时,它们在 Firebug 中显示为中止。但是,当我通过在地
这个问题已经有答案了: JavaScript property access: dot notation vs. brackets? (17 个回答) 已关闭 6 年前。 为什么这不起作用? func
我想将所有流量重定向到 https,只有 robot.txt 应该可以通过 http 访问。 是否可以为 robot.txt 文件创建异常(exception)? 我的 .htaccess 文件: R
我遇到了 LinkedIn OAuth2: "Unable to verify access token" 中描述的相同问题;但是,那里描述的解决方案并不能解决我的问题。 我能够成功请求访问 toke
问题 我有一个暴露给 *:8080 的 Docker 服务容器. 我无法通过 localhost:8080 访问容器. Chrome /curl无限期挂断。 但是如果我使用任何其他本地IP,我就可以访
我正在使用 Google 的 Oauth 2.0 来获取用户的 access_token,但我不知道如何将它与 imaplib 一起使用来访问收件箱。 最佳答案 下面是带有 oauth 2.0 的 I
我正在做 docker 入门指南:https://docs.docker.com/get-started/part3/#recap-and-cheat-sheet-optional docker-co
我正在尝试使用静态 IP 在 AKS 上创建一个 Web 应用程序,自然找到了一个带有 Nginx ingress controller in Azure's documentation 的解决方案。
这是我在名为 foo.js 的文件中的代码。 console.log('module.exports:', module.exports) console.log('module.id:', modu
我试图理解访问键。我读过https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-se
我正在使用 MGTwitterEngine"将 twitter 集成到我的应用程序中。它在 iOS 4.2 上运行良好。当我尝试从任何 iOS 5 设备访问 twitter 时,我遇到了身份验证 to
我试图理解访问键。我读过https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-se
我正在使用以下 API 列出我的 Facebook 好友。 https://graph.facebook.com/me/friends?access_token= ??? 我想知道访问 token 过
401 Unauthorized - Show headers - { "error": { "errors": [ { "domain": "global", "reas
我已经将我的 django 应用程序部署到 heroku 并使用 Amazon s3 存储桶存储静态文件,我发现从 s3 存储桶到 heroku 获取数据没有问题。但是,当我测试查看内容存储位置时,除
我是一名优秀的程序员,十分优秀!