上一節中介紹了各種用於畫圖的函數,為了進一步加深印象,我們通過一個實例來把這些功能整合到一起。
#!/usr/bin/env python
import pygame
from pygame.locals import *
from sys import exit
from random import *
from math import pi
pygame.init()
screen = pygame.display.set_mode((640, 480), 0, 32)
points = []
while True:
for event in pygame.event.get():
if event.type == QUIT:
exit()
if event.type == KEYDOWN:
# 按c鍵可以清屏並把點回復到原始狀態
print(event.key)
if event.key == K_c:
points = []
screen.fill((255,255,255))
if event.type == MOUSEBUTTONDOWN:
screen.fill((255,255,255))
# 畫隨機矩形
rc = (randint(0,255), randint(0,255), randint(0,255))
rp = (randint(0,639), randint(0,479))
rs = (639-randint(rp[0], 639), 479-randint(rp[1], 479))
pygame.draw.rect(screen, rc, Rect(rp, rs))
# 畫隨機圓形
rc = (randint(0,255), randint(0,255), randint(0,255))
rp = (randint(0,639), randint(0,479))
rr = randint(1, 200)
pygame.draw.circle(screen, rc, rp, rr)
# 獲得當前滑鼠點擊位置
x, y = pygame.mouse.get_pos()
points.append((x, y))
# 根據點擊位置畫弧線
angle = (x/639.)*pi*2.
pygame.draw.arc(screen, (0,0,0), (0,0,639,479), 0, angle, 3)
# 根據點擊位置畫橢圓
pygame.draw.ellipse(screen, (0, 255, 0), (0, 0, x, y))
# 從左上和右下畫兩根線連接到點擊位置
pygame.draw.line(screen, (0, 0, 255), (0, 0), (x, y))
pygame.draw.line(screen, (255, 0, 0), (640, 480), (x, y))
# 畫點擊軌跡圖
if len(points) > 1:
pygame.draw.lines(screen, (155, 155, 0), False, points, 2)
for p in points:
pygame.draw.circle(screen, (155, 155, 155), p, 3)
pygame.display.update()
運行這個程序,在上面點滑鼠就會有圖形出來了;按c鍵可以重新開始。另外這個程序只是各個命令的堆砌,主要是為了讓大家能夠理解和很好的使用各個函數。
下次開始我們學習遊戲中的動畫製作。
動力貓機器人教育專注於青少年STEAM教育、創客教育產品及課程體系的開發,為3-18歲學生提供全方位STEAM創客教育課程解決方案。
目前公司已取得多項發明專利、實用新型專利及多項軟體著作權專利,擁有上百種控制器、傳感器等電子模塊,近300種機械結構件,兼容國內外主流編程軟體,能夠實現較為複雜的物聯網和人工智慧項目的模型搭建,能充分滿足教學、比賽、創新創意等多種需求。
公司產品進入了中國電子學會發起的「全國青少年機器人技術等級考試」準用器材系列,自主研發軟體Scraino已經寫入山東中小學三個版本的信息技術課本,在天津、河北、山東等地開展培訓中心業務,為美國加州中小學課堂提供產品。
動力貓課程依託自身強大的研發實力,軟硬體相結合,軟體方面擁有業界領先的 Scraino(具有自主產權)圖形化編程軟體以及配套的電子件(各類傳感器及控制器等);硬體採用硬體採用動力貓的idea-x積木,該積木具有多項國家發明專利,六面拼插,多方式組合,圍繞6-18歲適齡兒童在教具器材、編程平臺、評價機制及課程體系、技能等級評測、科技創意賽事等領域多元化搭建教育平臺。其 Scraino、Python 課程,不僅能編程,還能通過自主研發的 Nano 控制器,各類傳感器,實現機器人物聯網課程學習,搭建屬於自己的智慧機器人。
聲明:編輯此文是出於傳遞更多信息之目的。若有來源標註錯誤或侵犯了您的合法權益,請作者持權屬證明與本號聯繫,我們將及時更正、刪除,謝謝。