2016-06-28 8 views
0

マップを作成します。ですから配列に値があり、それらの値を使ってマップを作成したいのです。したがって、値は1〜250であり、そのうちの120個(3度の1つ)があります。では、正しい順序(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×500パイガームキャンバスを持っています。
- それぞれ3度を表す120の値があります。私たちは、超音波センサーを回して値を読み取ることによってそれらを得ました。
- キャンバスにイメージを作成して、その値を読み込んでポイントをイメージに挿入して、イメージを形成ラインに結び付けたいとします。
- 超音波センサーで生成されたマップのようです。

+1

質問を再定式化して説明してください。何も明確ではありません... – MBo

+0

ここであなたは私がそれを修正した男に行きます。 –

+0

そして、すべての値がこのセクターのオブジェクトまでの距離を示していますか? – MBo

答えて

0

だからあなたのフィールドのフルサイズが2w=500で、ハーフサイズはフィールドのw=250

センターで座標(cx, cy) = (w, w)

の距離は、あなたの場合には、既に正規化されています(最大値250 =ワット)

あなたのオブジェクトがセクタの中心角に位置している場合は、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)) 
です
+0

ちょっとちょっとあなたのコードは、未解決のrefrence Cos、Sin、Pi、Roundと表示されません。これらはPython 2.7で使われていますか? –

+0

cyとcx以外のすべてが見つかりました –

+0

おかげでコードを書き直せますので、ゼロから使うことができます –

関連する問題