Cone是Manim中專門(mén)用于創(chuàng)建和操控錐形幾何對(duì)象的類。 Cone允許用戶定義錐體的底面半徑、高度、顏色、不透明度等屬性,并提供了一系列方法來(lái)操控這個(gè)錐體,如移動(dòng)、縮放、旋轉(zhuǎn)等。 通過(guò)這些屬性和方法,用戶可以靈活地創(chuàng)建出符合自己需求的錐形對(duì)象,并將其融入到動(dòng)畫(huà)或演示中。 1. 主要參數(shù) Cone的
Cone
是
Manim
中專門(mén)用于創(chuàng)建和操控
錐形幾何對(duì)象
的類。
Cone
允許用戶定義錐體的底面半徑、高度、顏色、不透明度等屬性,并提供了一系列方法來(lái)操控這個(gè)錐體,如移動(dòng)、縮放、旋轉(zhuǎn)等。
通過(guò)這些屬性和方法,用戶可以靈活地創(chuàng)建出符合自己需求的錐形對(duì)象,并將其融入到動(dòng)畫(huà)或演示中。
Cone
的主要參數(shù)有:
參數(shù)名稱 | 類型 | 說(shuō)明 |
---|---|---|
base_radius | float | 圓錐底部的半徑 |
height | float | 圓錐的高度,也就是圓錐從底面中心到頂點(diǎn)的垂直距離 |
direction | np.ndarray | 圓錐的朝向 |
show_base | bool | 是否顯示圓錐的底面 |
v_range | list[float] | 圓錐縱向掃描的范圍,用于控制圓錐側(cè)面的縱向形狀 |
u_min | float | 圓錐橫向掃描的最小角度,影響圓錐側(cè)面的橫向分布 |
checkerboard_colors | bool | 是否使用棋盤(pán)格顏色模式,有助于在視覺(jué)上區(qū)分圓錐的不同部分 |
這些參數(shù)允許用戶靈活地創(chuàng)建和自定義圓錐體對(duì)象。
例如,通過(guò)調(diào)整
base_radius
和
height
參數(shù),可以改變圓錐的大小和形狀;通過(guò)
direction
參數(shù),可以控制圓錐的朝向;而
show_base
、
v_range
、
u_min
和
checkerboard_colors
參數(shù)則提供了對(duì)圓錐視覺(jué)表現(xiàn)的進(jìn)一步定制。
Cone
類有兩個(gè)自己特有的改變方向的方法:
名稱 | 說(shuō)明 |
---|---|
get_direction | 用于獲取圓錐體的方向向量。這個(gè)方向向量通常是一個(gè)三維向量,表示圓錐體在空間中的朝向。 |
set_direction | 用于設(shè)置圓錐體的方向向量。通過(guò)傳入一個(gè)新的三維向量,可以改變圓錐體在空間中的朝向。 |
下面的示例將展示如何創(chuàng)建圓錐體對(duì)象、設(shè)置其參數(shù)、以及調(diào)用其方法來(lái)改變圓錐體的屬性或進(jìn)行動(dòng)畫(huà)。
本示例展示了如何在
Manim
場(chǎng)景中創(chuàng)建一個(gè)基本的圓錐體。
圓錐體具有指定的底面半徑和高度,并且默認(rèn)方向朝上。
# 創(chuàng)建一個(gè)底面半徑為1,高度為2的圓錐體,
# 方向朝上(默認(rèn)方向)
cone = Cone(base_radius=1, height=2)
在此示例中,創(chuàng)建了一個(gè)圓錐體,并對(duì)其進(jìn)行了自定義設(shè)置。
這包括設(shè)置圓錐體的 填充顏色 、 邊框顏色 、 邊框?qū)挾? ,以及將其移動(dòng)到場(chǎng)景中的 特定位置 。
這樣,圓錐體不僅具有獨(dú)特的外觀,還位于用戶指定的位置。
# 創(chuàng)建一個(gè)底面半徑為1.5,高度為3的圓錐體,
# 設(shè)置填充顏色和邊框顏色
cone = Cone(
base_radius=1.5,
height=3,
fill_color=RED,
stroke_color=YELLOW,
stroke_width=2,
)
# 將圓錐體移動(dòng)到場(chǎng)景中的特定位置
cone.move_to(np.array([1, 1, 1]))
這個(gè)示例演示了如何為圓錐體添加動(dòng)畫(huà)效果。
首先,創(chuàng)建了一個(gè)圓錐體,并隨后應(yīng)用了兩種動(dòng)畫(huà):旋轉(zhuǎn)和縮放。
圓錐體先繞y軸旋轉(zhuǎn)了一定角度,然后按比例放大。
# 創(chuàng)建一個(gè)底面半徑為1,高度為2的圓錐體
cone = Cone(
base_radius=1,
height=2,
fill_color=BLUE,
)
# 將圓錐體添加到場(chǎng)景中
self.play(Create(cone))
# 創(chuàng)建旋轉(zhuǎn)動(dòng)畫(huà),繞y軸旋轉(zhuǎn)90度
self.play(
Rotate(
cone,
axis=Y_AXIS,
angle=PI / 2,
),
)
# 創(chuàng)建縮放動(dòng)畫(huà),將圓錐體放大1.5倍
self.play(cone.animate.scale(1.5))
此示例展示了如何復(fù)制圓錐體并將其排列成一行。
首先,創(chuàng)建了一個(gè)圓錐體作為模板,然后使用循環(huán)創(chuàng)建了多個(gè)該圓錐體的副本,并將它們稍微移動(dòng)位置以排列成一行。
# 創(chuàng)建一個(gè)底面半徑為0.5,高度為1的圓錐體作為模板
cone_tpl = Cone(
base_radius=0.5,
height=1,
fill_color=GREEN,
)
# 創(chuàng)建一個(gè)圓錐體數(shù)組,
# 每個(gè)圓錐體都是模板的復(fù)制,并稍微移動(dòng)位置
cones = VGroup(
*[cone_tpl.copy().move_to([i, 0, 0]) for i in range(5)]
)
# 將圓錐體數(shù)組添加到場(chǎng)景中
self.play(Create(cones))
# 整個(gè)圓錐體數(shù)組一起移動(dòng)
self.play(cones.animate.shift(LEFT * 3))
文中的代碼只是關(guān)鍵部分的截取,完整的代碼共享在網(wǎng)盤(pán)中(
cone.py
),
下載地址: 完整代碼 (訪問(wèn)密碼: 6872)
小編推薦閱讀機(jī)器學(xué)習(xí):神經(jīng)網(wǎng)絡(luò)構(gòu)建(下)
閱讀華為Mate品牌盛典:HarmonyOS NEXT加持下游戲性能得到充分釋放
閱讀實(shí)現(xiàn)對(duì)象集合與DataTable的相互轉(zhuǎn)換
閱讀鴻蒙NEXT元服務(wù):論如何免費(fèi)快速上架作品
閱讀算法與數(shù)據(jù)結(jié)構(gòu) 1 - 模擬
閱讀基于鴻蒙NEXT的血型遺傳計(jì)算器開(kāi)發(fā)案例
閱讀5. Spring Cloud OpenFeign 聲明式 WebService 客戶端的超詳細(xì)使用
閱讀Java代理模式:靜態(tài)代理和動(dòng)態(tài)代理的對(duì)比分析
閱讀Win11筆記本“自動(dòng)管理應(yīng)用的顏色”顯示規(guī)則
閱讀本站所有軟件,都由網(wǎng)友上傳,如有侵犯你的版權(quán),請(qǐng)發(fā)郵件[email protected]
湘ICP備2022002427號(hào)-10 湘公網(wǎng)安備:43070202000427號(hào)© 2013~2025 haote.com 好特網(wǎng)