三角関数を使って三角形をランダムに変形しよう
今回は三角形の形をランダムに変形させてみましょう。
三角関数で座標を求めるための角度をランダムで変更させます。
ランダムで取得する値は、random.randint()を使います。
三角形をランダムに変形させるプログラム
三角形をランダムに変形させるプログラムは、以下のようになります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
### インポート import sys import math import random import pygame from pygame.locals import * ### 定数 WIDTH = 640 # 幅 HEIGHT = 400 # 高さ SIZE = 160 # 辺長 COG_X = int(WIDTH/2) # 重心X座標 COG_Y = int(HEIGHT/2) # 重心Y座標 ### 角度初期化 angle_a = 90 angle_b = 210 angle_c = 330 ### モジュール初期化 pygame.init() ### 時間オブジェクト生成 clock = pygame.time.Clock() ### 画面設定 surface = pygame.display.set_mode((WIDTH,HEIGHT)) ### 無限ループ while True: ### 画面初期化 surface.fill((0,0,0)) ### 三角形座標初期値 apex_a = COG_X-int(math.cos(math.radians(angle_a))*SIZE), COG_Y-int(math.sin(math.radians(angle_a))*SIZE) apex_b = COG_X-int(math.cos(math.radians(angle_b))*SIZE), COG_Y-int(math.sin(math.radians(angle_b))*SIZE) apex_c = COG_X-int(math.cos(math.radians(angle_c))*SIZE), COG_Y-int(math.sin(math.radians(angle_c))*SIZE) ### 三角形表示 pygame.draw.polygon(surface, (255,255,255), (apex_a,apex_b,apex_c)) ### 画面更新 pygame.display.update() ### フレームレート設定 clock.tick(60) ### 角度ランダム変更 angle_a += random.randint(-1,1) angle_b += random.randint(-1,1) angle_c += random.randint(-1,1) ### イベント処理 for event in pygame.event.get(): if event.type == KEYDOWN and event.key == K_ESCAPE: break else: continue ### whileループ終了 break ### 終了処理 pygame.quit() |
プログラムを実行すると、三角形がランダムに変形します。