最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

〔manim教程〕第二講 manim常用幾何類 學習筆記

2023-06-17 18:29 作者:NUMT片段  | 我要投稿


?
00:44
?

  1. 直線類Line
  2. 箭頭類Arrow
  3. add_tip等方法
#默認情況它下是二維坐標下從(-1,0)到(1,0)的一條線段
line_1=Line()
#現(xiàn)在傳入兩個坐標,改變Line的起止位置
line_1=Line(np.array([-4,-3,0]),np.array([0,3,0])) 
#當然還可以傳入buff參數(shù)來調整與目標點的距離
line_1=Line(np.array([-4,-3,0]),np.array([0,3,0]),buff=0)
#傳入stroke_width參數(shù)調整線的寬度
line_1=Line(np.array([-4,-3,0]),np.array([0,3,0]),stroke_width=6)
#使用put_start_and_end_on可以以兩點確定一條直線
line_1.put_start_and_end_on(np.array([-2,2,0]),np.array([0,-2,0]))
#對Line使用scale,只會改變其長度,而不會改變其粗細
line_1.scale(3)
#虛線
line_2=DashedLine(np.array([-2,-2,0]),np.array([0,2,0]))
#Line還有一個參數(shù):path_arc,可以將直線變成弧線 path_arc即為弧線的圓心角
line_3=Line(np.array([-2,-2,0]),np.array([-2,2,0]),path_arc=None)

Arrow繼承于Line類,只是在Line的基礎上在尾部加了箭頭

line_1=Line(np.array([-4,-2,0]),np.array([-4,2,0]))
line_1.add_tip()

vec_1=Arrow(np.array([-2,-2,0]),np.array([-2,2,0]))

Arrow參數(shù)

vec_1=Arrow(np.array([-2,-2,0]),?np.array([-2,2,0]),?buff=0,?tip_length=%.2f)
vec_1=Arrow(np.array([-2,-2,0]), np.array([-2,2,0]),buff=0,max_tip_length_to_length_ratio=%.2f)

Vector

#由原點開始的向量
vec_1=Vector(UP*2+LEFT*1)
#DoubleArrow可以表示雙箭頭
vec_2=DoubleArrow(np.array([-2,-2,0]),np.array([-1,0,0]))
#圓弧Arc也可以添加箭頭
arc_1=Arc(angle=TAU/3).add_tip()
arc_1.add_tip(at_start=True)
#使用TangentLine可以給物件作切線,alpha取值范圍為0到1
cir=Circle()
line=TangentLine(cir, alpha=%.2f,?length=5)

?
03:01
?

  1. 圓弧類Arc
  2. Arc的常用子類

Arc類用來繪制圓弧

arc=Arc(arc_center=ORIGIN,
        radius=1.0,
        stroke_width=4.0,
        start_angle=0*DEGREES,
        angle=90*DEGREES,
        color=BLACK)
self.add(arc)

Arc的子類

  • AnnularSector()
  • ArcBetweenPoints(p1,p2,angle)
  • CurvedArrow(p1,p2,angle)
  • CurvedDoubleArrow(p1,p2,angle)
  • Circle()

?
05:02
?

  1. 圓類Circle和點類Dot
  2. 橢圓類Ellipse

Circle繼承自Arc

circle=Circle(
    arc_center=ORIGIN,
    radius=1.0,
    stroke_width=4.0,
    stroke_color=RED,
    fill_color=RED,
    fill_opacity=0.0
)
self.add(circle)

Dot 繼承自Circle

dot=Dot(
    arc_center=ORIGIN,
    radius=0.08,
    stroke_width=0,
    fill_color=RED,
    fill_opacity=1
)

Ellipse繼承自Circle 用于繪制橢圓

ellipse=Ellipse(
    width=1.0,
    height=2.0,
    arc_center=2.0,
    radius=1,
    stroke_width=4,
    fill_color=RED,
    fill_opacity=0.0,
)
self.add(ellipse)

?
07:11
?

  1. Annulus 圓環(huán)
  2. AnnularSector 環(huán)狀扇形
  3. Sector 扇形

圓環(huán)

annulus = Annulus(
    outer_radius = 3,
    inner_radius = 2.5,
    fill_color = BlUE,
    fill_opacity=0.6,
    stroke_color = YELLOW
)

環(huán)狀扇形

ann_sec = AnnularSector(
    outer_radius=3,
    inner_radius=2.5,
    start_angle=PI/6,
    angle=PI/3,
    fill_color=BLUE,
    fill_opacity=0.6,
    stroke_width=10,
    stroke_color=YELLOW
)

扇形

sector = Sector(
    outer_radius=3,
    start_angle=PI/6,
    angle=PI/3,
    fill_color=BLUE,
    fill_opacity=0.6,
    stroke_width=10,
    stroke_color=YELLOW,
)

?
09:23
?

manim中通過點的位置來確定多邊形的形狀與位置

p1 = np.array([-1, 0, 0])
p2 = np.array([-1, 1.25, 0])
p3 = np.array([1, 0, 0])
triangle = Polygon(p1, p2, p3)
triangle.set_fill(color=ORANGE, opacity=0.8)
triangle.set_fill(opacity=0.2)
triangle.set_stroke(color=ORANGE,width=2)
triangle.round_corners(0.2)

更多時候我們需要的是規(guī)則正多邊形

Reghep= RegularPolygon(7)
Hexagon = RegularPolygon(6)
Pentagon = RegularPolygon(5)
Regtri = Triangle()

?
10:17
?

rectangle = Rectangle(
    height=2,
    width=3,
    fill_color="#66ccff",
    fill_opacity=1.0,
    stroke_color=PURPLE_C,
    stroke_width=20,
    stroke_opacity=1,
    sheen_facor=0.2,
    sheen_direction=UR,
)

Square正方形

square = Square(side_length=4)
# (dafault)side_length=2.0
square.set_height(3)
square.set_width(5)
square.set_height(3,stretch=True)

RoundedRectangle使長方形的四個角變得圓滑

roundedrec = RoundedRectangle(
#(default)corner_radius=0.5
corner_radius=0.5
)
#(Rectangle)corner_radius=0
rec=Rectangle(height=3,width=4)
rec.round_corners(1.5)

?
13:12
?

  1. list與VGroup的區(qū)別與聯(lián)系
  2. VGroup的常用方法

VGroup類似list

a = [0,1,2]
a.append(3)
a.remove(2)

VGroup

b = VGroup(mob0,mob1,mob2)
b.add(mob3)
b.add_to_back(mob)
b.remove(mob2)

VGroup整體也是VMobject

vg = VGroup(a,b,c)
vg.shift(UP)
vg[0].shift(DOWN*2)
b.shift(DOWN)
vg.arrange(DOWN,center=True,aligned_edge=LEFT).shift(LEFT*3)

VGroup可嵌套

vg = VGroup(a,b,c)
vg2 = VGroup(d,e)
VG = VGroup(vg,vg2)





〔manim教程〕第二講 manim常用幾何類 學習筆記的評論 (共 條)

分享到微博請遵守國家法律
化德县| 望城县| 民勤县| 青海省| 安阳市| 洛阳市| 洛川县| 辛集市| 拜泉县| 元谋县| 江城| 蛟河市| 南京市| 胶州市| 麻阳| 双鸭山市| 浦县| 许昌县| 馆陶县| 乌审旗| 大田县| 叶城县| 马公市| 宁陵县| 邳州市| 南澳县| 乌兰察布市| 玉林市| 龙门县| 峨山| 墨江| 海门市| 苗栗县| 兴国县| 贵德县| 台湾省| 深水埗区| 天等县| 龙南县| 和顺县| 噶尔县|