欢迎光临散文网 会员登陆 & 注册

强迫症必看!两点转圆

2023-03-02 22:19 作者:Ioencgc  | 我要投稿
代码:# -*- coding:utf-8 -*-
# 导入库
import pygame
from pygame.locals import *
from math import sin, cos, pi
from os import environ
from random import randint

environ['SDL_VIDEO_WINDOW_POS'] = "%d,%d" % (460, 30)
# 初始化
pygame.init()
pygame.font.init()

canvas = pygame.display.set_mode((1000, 1000))  # 创建窗口
pygame.display.set_caption("circle")  # 明明窗口标题
canvas.fill((255, 255, 255))
pygame.font.init()


class Point:
    def __init__(self):
        self.r = 300
        self.aRect = Rect(500, 200, 0, 0)
        self.bRect = Rect(500, 200, 0, 0)
        self.aA = 0
        self.bA = 0
        self.lines = [[500, 800]]
        # self.lines2 = [[500, 800]]
        self.font = pygame.font.SysFont('Segoe Print', 16)

    def move(self):
        self.aRect.x, self.aRect.y = 500 + 300 * sin(self.aA * pi / 180), 500 + 300 * cos(self.aA * pi / 180)
        self.bRect.x, self.bRect.y = 500 + 300 * sin(self.bA * pi / 180), 500 + 300 * cos(self.bA * pi / 180)
        self.lines.append([self.aRect.x, self.bRect.y])
        # self.lines2.append([self.bRect.x, self.aRect.y])
        self.aA += 1.1
        self.bA -= 1.3

    def draw(self):
        canvas.fill((255, 255, 255))
        pygame.draw.circle(canvas, [0, 200, 0], [500, 500], 300, 1)
        pygame.draw.aalines(canvas, [0, 0, 0], False, self.lines, 1)
        # pygame.draw.aalines(canvas, [0, 0, 0], False, self.lines2, 1)

        pygame.draw.circle(canvas, [0, 0, 255], [self.aRect.x, self.aRect.y], 4, 4)
        pygame.draw.line(canvas, [200, 200, 200], [self.aRect.x, 0], [self.aRect.x, 1000], 1)
        # pygame.draw.line(canvas, [200, 200, 200], [0, self.aRect.y], [1000, self.aRect.y], 1)

        pygame.draw.circle(canvas, [0, 0, 255], [self.bRect.x, self.bRect.y], 4, 4)
        pygame.draw.line(canvas, [200, 200, 200], [0, self.bRect.y], [1000, self.bRect.y], 1)
        # pygame.draw.line(canvas, [200, 200, 200], [self.bRect.x, 0], [self.bRect.x, 1000], 1)

        pygame.draw.circle(canvas, [255, 0, 0], [self.aRect.x, self.bRect.y], 4, 4)
        # pygame.draw.circle(canvas, [255, 0, 0], [self.bRect.x, self.aRect.y], 4, 4)

        # canvas.blit(self.font.render(
        #     'x: {}, y: {}'.format(self.aRect.x, self.bRect.y), True,
        #     (0, 0, 0), (255, 255, 255)), (self.aRect.x, self.bRect.y))

        pygame.display.update()


def handleEvent():  # 创建按键检测方法
    for event in pygame.event.get():
        # 按下关闭键或ESC键时关闭程序
        if event.type == QUIT or event.type == KEYDOWN and event.key == K_ESCAPE:
            pygame.quit()
            exit()


point = Point()
while True:
    point.move()
    point.draw()
    handleEvent()
    pygame.time.delay(10)


强迫症必看!两点转圆的评论 (共 条)

分享到微博请遵守国家法律