說明:在pycharm平台實現的影象旋轉
通過確定圓心,在乙個以座標原點為圓心的假想圓的圓周上繪製一定數量的點,並在這些點和圓心之間做直線,同時為每條直線圓心處的點和圓周上的點設定一種顏色,使得顏色漸變,最終讓其旋轉起來。
知識點:
視窗的繪製,等分點的尋找
1、首先使用pygame建立乙個視窗,以便顯示影象
2、通過迴圈找出半徑為300,圓心位置在(500,500)上的30個等分點
3、構建draw()函式,進行圓心位置與等分點的連線
4、設定時鐘訊號與清屏功能,產生旋轉效果
首先,使用dda演算法畫直線
dda演算法
'''if k >-1
and k <1:
# x 最大位移
while
true
:if x > x1:
break
add_pixel(x, y, bx,1)
x = x+
1 y = y+k
elif k >=1:
# y 最大位移
while
true
:if y > y1:
break
add_pixel(x, y, bx,1)
y = y+
1 x = x+1/k
else
:while
true
:if y < y1:
break
add_pixel(x, y, bx,1)
y = y-
1 x = x-
1/k
再實現bresenham演算法構建直線
if k >1:
while
true
:if y > y1:
break
add_pixel(x, y, ax,0)
y = y +
1 d = d +
1/ k
if d >
0.5:
x = x +
1 d = d -
1elif k >0:
while
true
:if x > x1:
break
add_pixel(x, y, ax,0)
x = x +
1 d = d + k
if d >
0.5:
y = y +
1 d = d -
1elif k >-1
:while
true
:if x > x1:
break
add_pixel(x, y, ax,0)
x = x +
1 d = d - k
if d >
0.5:
y = y -
1 d = d -
1else
:while
true
:if y < y1:
break
add_pixel(x, y, ax,0)
y = y -
1 d = d -
1/ k
if d >
0.5:
x = x +
1 d = d -
1
實現旋轉的摩天輪的完整**:
import pygame, os
import numpy as np
pi =
3.1415
fps =
100thare =
0fpsclock = pygame.time.clock(
)# 初始化pygame
pygame.init(
)r =
300# 半徑
number_point =
30# 等分點數量
temp = np.linspace(0,
2* np.pi,
1000
)x = np.sin(temp)
* ry = np.cos(temp)
* r# 設定視窗的大小,單位為畫素
screen = pygame.display.set_mode(
(1000
,1000))
pygame.display.set_caption(
'xuanzhaun'
)# 定義顏色
black =(0
,0,0
)white =
(255
,255
,255
)red =
(255,0
,0)green =(0
,255,0
)blue =(0
,0,255
)# 設定背景顏色
screen.fill(white)
# 繪製一條線
defdraw()
:for i in
range(30
):m =
int(x[i]
+500
) n =
int(y[i]
+500
) pygame.draw.line(screen, green,
[500
,500],
[m,n],3
) pygame.draw.circle(screen, blue,
[m,n],10
,0)#pygame.display.update()
# 設定pygame時鐘的間隔時間
fpsclock.tick(fps)
while
(thare<
100000):
x =y =
for i in
range
(number_point):2
* pi / number_point + thare))2
* pi / number_point + thare)
) thare = thare+
1 pygame.draw.circle(screen, green,
[500
,500],
300,1)
draw(
) pygame.display.update(
) screen.fill(white)
[外鏈轉存失敗,源站可能有防盜煉機制,建議將儲存下來直接上傳(img-cuvndkfg-1603118083567)(c:\users\dsh\desktop\發發發.gif)]
pygame.display.update()
screen.fill(white)
### 四、實現效果
[外鏈轉存中...(img-4n40sutf-1603118083564)]
[外鏈轉存中...(img-cuvndkfg-1603118083567)]
### 五、總結
在老師發了本次作業後,我最開始看了關於mfc實現的相關程式,仔細閱讀完程式後,就決定用python來實現這麼乙個動畫過程。在實現的過程中,也是遇到了許多的小問題,比如設定好增加角度迴圈,再重繪顯示後,在背景框上並沒有動畫的顯示。在翻閱資料後才知道,必須在繪製過程中加乙個時鐘延時過程,才可以看見動畫效果。
使用css3構建乙個摩天輪旋轉
一 摩天輪構建思路 1 自身繞圓旋轉 修改旋轉軸心 keyframes spin box ball box ball box inner animation inherit 繼承上級的屬性 animation name spin reverse 二 實踐 demo1 ball demo2 ball ...
自定義學習 摩天輪原理
這個例子是從課堂上拿過來的 是乙個很好的例子,可以學習手勢識別,以及事件分發,特別是轉動速度和滑動之間的關係。public class skywheel extends relativelayout public skywheel context context,attributeset attrs...
傾角感測器應用於摩天輪吊艙調平
無錫詠為感測科技 是一家設計 製造 銷售為一體的傾角感測器類產品 商,產品廣泛應用於角度測量 平台監測 雷射調平 安防控制等領域。現介紹一種應用於摩天輪安全控制方面的技術方案,均實拍與施工現場。1 設計需求 摩天輪轉動過程中,受到風力 慣性等因素的影響,轎廂會擺動,影響客戶體驗,同時,如果偏轉角度過...