vispy:如何仅画四分之一的飞机

发布于 2025-02-09 18:24:08 字数 1623 浏览 1 评论 0原文

我只想显示飞机的四分之一,有什么方法可以做到吗?我已经尝试了visuals.plane()的所有选项,但没有成功。我还试图更改顶点的值['color'],结果是相同的。这是我的代码:

import vispy
from vispy import geometry
from vispy.scene import visuals, widgets
from vispy.scene.cameras import TurntableCamera
from vispy.scene import SceneCanvas

class Vis():
    def __init__(self):  
        self.canvas = SceneCanvas(keys='interactive', title='vispy', show=True, size=(1280, 720))
        self.canvas.events.key_press.connect(self._key_press)
        self.grid = self.canvas.central_widget.add_grid()
        self.view = widgets.ViewBox(parent=self.canvas.scene,
                                camera=TurntableCamera(distance=10.0))
        self.grid.add_widget(self.view)
        visuals.XYZAxis(parent=self.view.scene)
        vertices, faces, outline = geometry.create_plane(width=2,
                                                        height=2,
                                                        direction='+z', width_segments=1, height_segments=1)
        self.floor = visuals.Plane(width=2,
                                 height=2,
                                 width_segments=1, height_segments=1,
                                 vertex_colors=vertices['color'], edge_color='k', direction='+z',
                                 parent=self.view.scene)

    def run(self):
        self.canvas.app.run()

    def _key_press(self, event):
        if event.key == 'Q':
            self.destroy()

    def destroy(self):
        self.canvas.close()
        vispy.app.quit()

if __name__ == "__main__":
    vis = Vis()
    vis.run()

I want to show only 1 quarter of a plane, is there any method to do that? I've tried all options of visuals.Plane() but not successfully. I also tried to change value of vertices['color'] and the result is same. Here is my code:

import vispy
from vispy import geometry
from vispy.scene import visuals, widgets
from vispy.scene.cameras import TurntableCamera
from vispy.scene import SceneCanvas

class Vis():
    def __init__(self):  
        self.canvas = SceneCanvas(keys='interactive', title='vispy', show=True, size=(1280, 720))
        self.canvas.events.key_press.connect(self._key_press)
        self.grid = self.canvas.central_widget.add_grid()
        self.view = widgets.ViewBox(parent=self.canvas.scene,
                                camera=TurntableCamera(distance=10.0))
        self.grid.add_widget(self.view)
        visuals.XYZAxis(parent=self.view.scene)
        vertices, faces, outline = geometry.create_plane(width=2,
                                                        height=2,
                                                        direction='+z', width_segments=1, height_segments=1)
        self.floor = visuals.Plane(width=2,
                                 height=2,
                                 width_segments=1, height_segments=1,
                                 vertex_colors=vertices['color'], edge_color='k', direction='+z',
                                 parent=self.view.scene)

    def run(self):
        self.canvas.app.run()

    def _key_press(self, event):
        if event.key == 'Q':
            self.destroy()

    def destroy(self):
        self.canvas.close()
        vispy.app.quit()

if __name__ == "__main__":
    vis = Vis()
    vis.run()

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文