首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用pygame进行放大/缩小?

如何使用pygame进行放大/缩小?
EN

Stack Overflow用户
提问于 2012-10-16 04:41:34
回答 1查看 2.1K关注 0票数 0

我在做一个模拟城市的应用。在应用程序中,会有随机时间发生的事件。我希望用户能够放大该事件,以获得详细的视图。

没有放大,事件的位置只是标记为X。如果用户放大,用户将能够看到事件的更多细节;例如,如果这是一场车祸,放大用户将看到可能的2+汽车碰撞和一些动画等。

我希望缩放工作的方式是让用户能够暂停应用程序,移动鼠标到事件的位置,滚动放大/缩小。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-16 04:51:28

您可以使用3D到2D投影函数(方法)来处理缩放(和透视),例如:

代码语言:javascript
复制
class Point3D:

    def __init__(self, x = 0, y = 0, z = 0):
        self.x, self.y, self.z = float(x), float(y), float(z)

 ...

    def project(self, win_width, win_height, fov, viewer_distance, perspective):
        """ 
        Transforms this 3D point to 2D using a perspective projection. 
        """
        if perspective:
            factor = fov / (viewer_distance + self.z)
        else:
            factor = fov / viewer_distance
        x = self.x * factor + win_width / 2
        y = -self.y * factor + win_height / 2
        return Point3D(x, y, self.z)

在本例中,参数viewer_distance用于缩放。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12903657

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档