根据源点

时间:2016-06-28 15:51:42

标签: python python-3.x geometry pygame

我想制作一张地图。所以我在数组中有值,我想使用这些值来制作地图。因此值为1到250,其中有120个(一个为3度)。那么如何根据正确的顺序(从0到360度)计算我的点数呢?

到目前为止,这是我的代码:

import pygame

white = (255, 255, 255)
black = (0, 0, 0)
import sys
pygame.init()
screen = pygame.display.set_caption("Drawing is fun!")
screen = pygame.display.set_mode((500, 500))
screen.fill(white)
pygame.draw.circle(screen, black, (250, 250), 250, 1)
clock = pygame.time.Clock()
while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit();
            sys.exit();
    pygame.display.update()
    clock.tick(60)

我还没有阵列,但我会在不久的将来拥有它。假设数组名为values

对于那些不理解我的问题的人:
- 我有一个500 x 500的pygame画布 - 我有120个值,每个值代表3度。我们通过旋转超声波传感器并读取数值来获得它们 - 我想在画布上创建一个图像来读取这些值并在图像中放置点然后将它们连接起来形成线条 - 它就像是由超声波传感器生成的地图。

1 个答案:

答案 0 :(得分:0)

因此,您的字段的完整尺寸为2w=500,而半尺寸为w=250

字段中心的坐标为(cx, cy) = (w, w)

在你的情况下距离已经标准化(最大值250 = w)

如果您的对象指向扇区的中心角,则第i个索引处的对象的屏幕坐标为

central_angle = (1.5 + i * 3) * Pi / 180  //in radians
x = cx + Round(values[i] * Cos(central_angle))   //round float value to get integer coordinate
y = cy + Round(values[i] * Sin(central_angle))