使用python創(chuàng)建極坐標平面的示例代碼
極坐標的介紹
PolarPlane 是 Manim(一個用于數(shù)學動畫的Python庫)中的一個類,用于創(chuàng)建極坐標平面。與笛卡爾坐標系不同,極坐標系是基于角度和半徑來定位點的。具體來說,這里的每個點由一個角度和距離原點的距離表示。
PolarPlane 的主要特性:
極坐標系:
PolarPlane用極徑(r)和極角(θ)來展示坐標系,便于處理與角度和半徑相關的數(shù)學概念。網(wǎng)格和坐標:它通常會顯示一個網(wǎng)格,以幫助觀眾理解不同的極徑和角度。
靈活性:可以與其他 Manim 對象結合使用,可以在極坐標系中繪制圖形或曲線。
使用場景:
- 顯示極坐標相關的數(shù)學概念,如極函數(shù)、幅角等。
- 動畫涉及到旋轉或與角度相關的變化。
- 解析極坐標方程圖像。
繪制極坐標的構造函數(shù)
構造函數(shù):
PolarPlane(radius_max=4.0, size=None, radius_step=1, azimuth_step=None, azimuth_units='PI radians', azimuth_compact_fraction=True, azimuth_offset=0, azimuth_direction='CCW', azimuth_label_buff=0.1, azimuth_label_font_size=24, radius_config=None, background_line_style=None, faded_line_style=None, faded_line_ratio=1, make_smooth_after_applying_functions=True, **kwargs)
PolarPlane 類的構造函數(shù)接受多個參數(shù),以便用戶自定義極坐標平面的特性。下面是每個參數(shù)的解釋:
參數(shù)解釋
radius_max: 極坐標平面上半徑的最大值。默認為
4.0。size: 極坐標平面的大小。如果未指定,通常會根據(jù)
radius_max自動計算。radius_step: 半徑標記之間的間隔。例如,如果設置為
1,則每個單位的半徑都會有標記。azimuth_step: 指定 azimuth(方位角)標記之間的角度步長,例如 30 度 (PI/6)。
azimuth_units: 指定方位角的單位,可以是
‘degrees’或‘PI radians’。默認為‘PI radians’。azimuth_compact_fraction: 是否以緊湊的分數(shù)形式顯示方位角標簽(例如,π/2 而不是 1.5708)。默認為
True。azimuth_offset: 方位角的偏移量,以弧度為單位。默認值為
0。azimuth_direction: 指定方位角的遞增方向,可以是
'CW'(順時針)或'CCW'(逆時針)。默認為'CCW'。azimuth_label_buff: 方位角標簽與極坐標圖的距離,增加此數(shù)值可以使標簽更遠離原點。
azimuth_label_font_size: 方位角標簽的字體大小,默認為
24。radius_config: 自定義半徑標記樣式,可以是顏色、線條樣式等。
background_line_style: 背景線的樣式,通常用于極軌跡和背景網(wǎng)格的樣式。
faded_line_style: 淡化線條的樣式,通常用于控制一些輔助線的風格。
faded_line_ratio: 控制淡化線條的比例,默認值為
1。make_smooth_after_applying_functions: 在應用函數(shù)后是否使線條平滑,默認為
True。kwargs: 其他參數(shù),傳遞給基類或其他組件。
示例代碼1:
from manim import *
class PolarPlaneExample1122(Scene):
def construct(self):
polarplane_pi01 = PolarPlane(
azimuth_units="PI radians",
size=5,
azimuth_label_font_size=33.6,
radius_config={"font_size": 33.6},
).add_coordinates()
self.add(polarplane_pi01)
polar_plane = PolarPlane(
#radius_max=7.5,
size=5,
radius_step=1, # 修改為1,顯示更細的半徑刻度
#azimuth_step=PI/5, # 修改為PI/4,顯示更多的角度刻度
azimuth_units='PI radians',
#azimuth_compact_fraction=True,
#azimuth_offset=PI/4,
#azimuth_direction='CCW',
#azimuth_label_buff=0.9,
azimuth_label_font_size=33.6,
radius_config={"font_size": 33.6},
#radius_config={"color": BLUE},
#background_line_style={"stroke_color": GREY_A, "stroke_width":10},
#faded_line_style={"stroke_color": GREY_B, "stroke_width": 0.5},
#faded_line_ratio=0.5,
#make_smooth_after_applying_functions=True
).add_coordinates()
self.add(polar_plane)
r = 1
theta = PI / 5
x = r * np.cos(theta)
y = r * np.sin(theta)
point = np.array([x, y, 0])
dot = Dot(point, color=YELLOW)
self.add(dot)
angle_label = MathTex(r"\theta = \frac{\pi}{5}").next_to(dot, UP)
self.add(angle_label)
%manim -qm -v WARNING PolarPlaneExample1122運行結果:

示例代碼2:
from manim import *
class PolarPlaneExample2222(Scene):
def construct(self):
# 創(chuàng)建極坐標平面
polar_plane = PolarPlane(azimuth_units="PI radians",
size=6,
azimuth_label_font_size=33.6,
radius_config={"font_size": 33.6}).add_coordinates()
# 添加背景線條
self._init_background_lines(polar_plane)
# 獲取軸并添加
axes = polar_plane.get_axes()
self.add(axes)
# 獲取坐標標簽并添加
coordinate_labels = polar_plane.get_coordinate_labels()
#self.add(coordinate_labels)
# 進行一些動畫
self.play(Create(polar_plane))
self.wait(2)
def _init_background_lines(self, polar_plane):
# 使用 _get_lines() 生成背景線條
non_faded_lines, faded_lines = polar_plane._get_lines()
# 添加非淡化線條
self.add(non_faded_lines)
# 添加淡化線條
self.add(faded_lines) 運行結果:

以上就是使用python創(chuàng)建極坐標平面的示例代碼的詳細內容,更多關于python創(chuàng)建極坐標平面的資料請關注腳本之家其它相關文章!
相關文章
pandas數(shù)據(jù)聚合與分組運算的實現(xiàn)
本文主要介紹了pandas數(shù)據(jù)聚合與分組運算的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-01-01
使用Python發(fā)送郵件附件以定時備份MySQL的教程
這篇文章主要介紹了使用Python發(fā)送郵件附件以定時備份MySQL的教程,本文的示例基于CentOS,需要的朋友可以參考下2015-04-04
利用Python yagmail三行代碼實現(xiàn)發(fā)送郵件
這篇文章主要給大家介紹了關于利用Python yagmail三行代碼實現(xiàn)發(fā)送郵件的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2018-05-05

