The Nature of Code閱讀心得與Python實作:3.1 Angles

更新於 發佈於 閱讀時間約 4 分鐘

角度有兩種單位,一個就是大家耳熟能詳的「度」(degree),記做 °;另一個是「弳度」(radian),也翻譯成「弧度」,記做rad。當使用弳度來度量角度的大小時,通常會把rad省略,不寫出來。

弳度的定義是:一個圓的圓弧長度,和這個圓的半徑的比值。所以,1 rad就相當於是圓弧長度和半徑相等時的角度大小。

利用弳度的定義,可以很容易就推導出度和弳度間的關係。假設圓的半徑是r,那整個圓繞一圈的長度,也就是圓周長,就是2πr。所以,整個圓繞一圈,就相當於是繞了

2πr / r = 2π rad

眾所周知,整個圓繞一圈是360°,所以

2π = 360°

也就是說

π = 180°

有了這個關係式,可以很容易就看出,弳度和度之間的轉換可以寫成

弳度 / 度 = π / 180

在python的math module裡頭,提供了兩個方法,可以很方便地在度和弳度間進行轉換

  • math.radians(deg):把度轉換成弳度。
  • math.degrees(rad):把弳度轉換成度。

關於角度,除了要注意單位之外,還要注意正負號代表的意思。正的角度,代表的是逆時針方向旋轉的角度;負的角度,則代表順時針方向旋轉的角度。

Exercise 3.1

pygame.transform.rotate()來旋轉圖案。不過,要注意的是,這個方法使用的角度單位是度,而不是弳度。

# python version 3.10.9
import sys

import pygame # version 2.3.0

pygame.init()

pygame.display.set_caption("Exercise 3.1")

BLACK = (0, 0, 0)
WHITE = (255, 255, 255)

WIDTH, HEIGHT = screen_size = 640, 360
screen = pygame.display.set_mode(screen_size)

FPS = 60
frame_rate = pygame.time.Clock()

baton_length = 200 # 指揮棒長度
radius = 10 # 指揮棒端點球半徑

# 建造用來繪製指揮棒圖案的surface並以白色清空
surface_size = (baton_length, baton_length)
surface = pygame.Surface(surface_size)
surface.fill(WHITE)

# 在surface上繪製指揮棒圖案
endpoint1 = (radius, baton_length//2)
endpoint2 = (baton_length-radius, baton_length//2)
pygame.draw.circle(surface, BLACK, endpoint1, radius)
pygame.draw.circle(surface, BLACK, endpoint2, radius)
pygame.draw.line(surface, BLACK, endpoint1, endpoint2, 5)

# surface的旋轉角度,單位是度
angle = 1

while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()

screen.fill(WHITE)

angle -= 1 # 順時針旋轉
rotated_surface = pygame.transform.rotate(surface, angle)
rect = rotated_surface.get_rect(center=(WIDTH//2, HEIGHT//2))
screen.blit(rotated_surface, (rect.x, rect.y))

pygame.display.update()
frame_rate.tick(FPS)




留言
avatar-img
留言分享你的想法!
avatar-img
ysf的沙龍
19會員
155內容數
寫點東西自娛娛人
ysf的沙龍的其他內容
2024/09/20
這一節要模擬的是擺(pendulum)這個裝置中,構造最簡單、具有理想化性質的單擺(simple pendulum)。
Thumbnail
2024/09/20
這一節要模擬的是擺(pendulum)這個裝置中,構造最簡單、具有理想化性質的單擺(simple pendulum)。
Thumbnail
2024/09/16
我們曾經利用sin函數來模擬彈簧吊錘(bob)的運動,雖然這樣子的做法程式很容易寫,但是卻沒辦法模擬彈簧吊錘受到如風力、重力等環境中其他作用力的影響下,在空間中的運動狀況。要克服這樣子的問題,就不能再倚靠sin函數,而必須改用能夠用來計算彈簧彈力的虎克定律(Hooke's law)。
Thumbnail
2024/09/16
我們曾經利用sin函數來模擬彈簧吊錘(bob)的運動,雖然這樣子的做法程式很容易寫,但是卻沒辦法模擬彈簧吊錘受到如風力、重力等環境中其他作用力的影響下,在空間中的運動狀況。要克服這樣子的問題,就不能再倚靠sin函數,而必須改用能夠用來計算彈簧彈力的虎克定律(Hooke's law)。
Thumbnail
2024/09/13
在x軸上依序取一些點,然後把這些點以及其對應的sin函數的值所構成的二維座標點畫出來時,就可以看到由這個sin函數所產生的像波一樣的圖案,也就是波型(wave pattern)。不同樣式的波型,可以用來設計生物的軀幹或肢體,也可以用來模擬像水這類柔軟的表面。
Thumbnail
2024/09/13
在x軸上依序取一些點,然後把這些點以及其對應的sin函數的值所構成的二維座標點畫出來時,就可以看到由這個sin函數所產生的像波一樣的圖案,也就是波型(wave pattern)。不同樣式的波型,可以用來設計生物的軀幹或肢體,也可以用來模擬像水這類柔軟的表面。
Thumbnail
看更多
你可能也想看
Thumbnail
2025 vocus 推出最受矚目的活動之一——《開箱你的美好生活》,我們跟著創作者一起「開箱」各種故事、景點、餐廳、超值好物⋯⋯甚至那些讓人會心一笑的生活小廢物;這次活動不僅送出了許多獎勵,也反映了「內容有價」——創作不只是分享、紀錄,也能用各種不同形式變現、帶來實際收入。
Thumbnail
2025 vocus 推出最受矚目的活動之一——《開箱你的美好生活》,我們跟著創作者一起「開箱」各種故事、景點、餐廳、超值好物⋯⋯甚至那些讓人會心一笑的生活小廢物;這次活動不僅送出了許多獎勵,也反映了「內容有價」——創作不只是分享、紀錄,也能用各種不同形式變現、帶來實際收入。
Thumbnail
嗨!歡迎來到 vocus vocus 方格子是台灣最大的內容創作與知識變現平台,並且計畫持續拓展東南亞等等國際市場。我們致力於打造讓創作者能夠自由發表、累積影響力並獲得實質收益的創作生態圈!「創作至上」是我們的核心價值,我們致力於透過平台功能與服務,賦予創作者更多的可能。 vocus 平台匯聚了
Thumbnail
嗨!歡迎來到 vocus vocus 方格子是台灣最大的內容創作與知識變現平台,並且計畫持續拓展東南亞等等國際市場。我們致力於打造讓創作者能夠自由發表、累積影響力並獲得實質收益的創作生態圈!「創作至上」是我們的核心價值,我們致力於透過平台功能與服務,賦予創作者更多的可能。 vocus 平台匯聚了
Thumbnail
1.0 從函數到函算語法 1.2 函數概念小史 1.2.1 中譯的來源 1.2.2 一個速度問題 1.2.3 幾何的方法 1.2.4 微積分的記法 1.2.5 弦的振動 1.2.6 熱的傳導 1.2.7 十九世紀的尾聲 三 必須說一下波希米亞數學家/邏輯學家/哲學家/神學
Thumbnail
1.0 從函數到函算語法 1.2 函數概念小史 1.2.1 中譯的來源 1.2.2 一個速度問題 1.2.3 幾何的方法 1.2.4 微積分的記法 1.2.5 弦的振動 1.2.6 熱的傳導 1.2.7 十九世紀的尾聲 三 必須說一下波希米亞數學家/邏輯學家/哲學家/神學
Thumbnail
這一節談的是向量的定義,以及如何運用向量來建立模擬物體運動時,關於位置和速度間的關係式。
Thumbnail
這一節談的是向量的定義,以及如何運用向量來建立模擬物體運動時,關於位置和速度間的關係式。
Thumbnail
1.0 從函數到函算語法 1.2 函數概念小史 1.2.1 中譯的來源 1.2.2 一個速度問題 1.2.3 幾何的方法 1.2.4 微積分的記法 1.2.5弦的振動 1.2.6熱的傳導 二 傅立葉認為他的結果對任一函數皆有效,並將函數定義為 (FF) 在一般情況下,函數
Thumbnail
1.0 從函數到函算語法 1.2 函數概念小史 1.2.1 中譯的來源 1.2.2 一個速度問題 1.2.3 幾何的方法 1.2.4 微積分的記法 1.2.5弦的振動 1.2.6熱的傳導 二 傅立葉認為他的結果對任一函數皆有效,並將函數定義為 (FF) 在一般情況下,函數
Thumbnail
1.0 從函數到函算語法 1.2 函數概念小史 1.2.1 中譯的來源 1.2.2 一個速度問題 1.2.3 幾何的方法 1.2.4 微積分的記法 1.2.5 弦的振動 1.2.6 熱的傳導 一 偏微分方程始於公元十八世紀,在十九世紀茁長壯大。 隨著物理科學擴展越深 (理
Thumbnail
1.0 從函數到函算語法 1.2 函數概念小史 1.2.1 中譯的來源 1.2.2 一個速度問題 1.2.3 幾何的方法 1.2.4 微積分的記法 1.2.5 弦的振動 1.2.6 熱的傳導 一 偏微分方程始於公元十八世紀,在十九世紀茁長壯大。 隨著物理科學擴展越深 (理
Thumbnail
這篇介紹如何用加速度取得傾斜角度。 用的是和前篇一樣的<basicMpu6050.h>
Thumbnail
這篇介紹如何用加速度取得傾斜角度。 用的是和前篇一樣的<basicMpu6050.h>
Thumbnail
直觀理解 導數:考慮的是單一變數的函數,描述的是函數在某點的斜率或變化率。 偏導數:考慮的是多變數函數,描述的是函數在某個變數變化時的變化率,其他變數保持不變。  (針對各維度的調整 或者稱變化 你要調多少) 應用 導數:在物理學中應用廣泛,例如描述速度和加速度。 偏導數:在多變量分析、優
Thumbnail
直觀理解 導數:考慮的是單一變數的函數,描述的是函數在某點的斜率或變化率。 偏導數:考慮的是多變數函數,描述的是函數在某個變數變化時的變化率,其他變數保持不變。  (針對各維度的調整 或者稱變化 你要調多少) 應用 導數:在物理學中應用廣泛,例如描述速度和加速度。 偏導數:在多變量分析、優
Thumbnail
上一篇「聲音的溫度」,我提到文字的感覺是1D的,因為總有一條線的距離;而聲音是2D的,因為聲音會迎面而來。面對面卻不是3D,而是2 D的。為什麼呢?其實標題就已經告訴你知道答案了。但是,為什麼我會感覺「面對面」是2D的呢?
Thumbnail
上一篇「聲音的溫度」,我提到文字的感覺是1D的,因為總有一條線的距離;而聲音是2D的,因為聲音會迎面而來。面對面卻不是3D,而是2 D的。為什麼呢?其實標題就已經告訴你知道答案了。但是,為什麼我會感覺「面對面」是2D的呢?
Thumbnail
這一系列關於數學符號歷史的紀錄片,共介紹了5種符號,以一集一種符號故事性、戲劇性地方式介紹,分別是圓周率π、無限∞、未知數x、零0、虛數i。一般人都能深入淺出的了解符號背後的由來及發現的意義。趁著這兩天陰雨天在家看完,真心覺得當初若國高中數學課也是如此項是在教一種思想史的教數學,必定會更加有
Thumbnail
這一系列關於數學符號歷史的紀錄片,共介紹了5種符號,以一集一種符號故事性、戲劇性地方式介紹,分別是圓周率π、無限∞、未知數x、零0、虛數i。一般人都能深入淺出的了解符號背後的由來及發現的意義。趁著這兩天陰雨天在家看完,真心覺得當初若國高中數學課也是如此項是在教一種思想史的教數學,必定會更加有
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News