본문 바로가기

Programming

(165)
[030]FunctionGraph class FrunctionGraphTest(MovingCameraScene): def construct(self): self.add(NumberPlane()) def simple_func(self): graph = FunctionGraph( lambda x: 0.5 * x + 1, x_min = -5, x_max = 5, color = YELLOW, stroke_width = 6, ) self.play(ShowCreation(graph)) def sine_curve(self): curve = FunctionGraph( lambda t: np.sin(t), x_min=-TAU, x_max=TAU, color=YELLOW, stroke_width=6, ) curve.move_to(DR) curve.set_..
[029]ParametricFunction class ParametricFunctionTest(Scene): def construct(self): self.add(NumberPlane()) self.para_function1() def para_function1(self): func1 = lambda t: np.array([t, 0.5 * t,0]) func2 = lambda t: np.array([t, 0.4*(t+3)*(t-2), 0]) graph1 = ParametricFunction( func1, t_min=-4, t_max=4, color=YELLOW, ) graph2 = ParametricFunction( func2, t_min=-4, t_max=4, color=YELLOW, ) # self.add(graph1, graph2) self..
[028]Decimal num_decimal_places num = DecimalNumber(n, num_decimal_places=3) include_sign num = DecimalNumber(n, include_sign=True) group_with_commas num = DecimalNumber(n) num = DecimalNumber(n, group_with_commas=False) show_ellipsis num=DecimalNumber(n, show_ellipsis=True) unit n=99.1 num=DecimalNumber(n, unit="\\%") num=DecimalNumber(n, unit="^\\%") include_background_rectangle rect = Rectangle(fill_opaci..
[027]Ellipse/Annulus/AnnularSector/Sector Ellipse ellipse = Ellipse() Annulus annulus = Annulus() AnnularSector a_sector = AnnularSector() Sector sector = Sector()
[026]Circle def circle_test(self): circle1 = Circle( radius=1, stroke_width=6, stroke_color=RED, fill_opacity=1.0, fill_color=BLUE) circle2 = circle1.copy() circle2.set_fill(color=RED,opacity=1.0) circle1.to_edge(LEFT) circle2.to_edge(RIGHT) self.add(circle1) self.play( Transform(circle1,circle2), run_time=4, ) self.wait()
[025]ArcBetweenPoints def arc_between_test1(self): values = [PI/8, PI/4, PI/2, PI, 3*PI/2] strs = ["PI/8", "PI/4", "PI/2", "PI", "3*PI/2"] def get_arc_text(str, angle_value): arc = ArcBetweenPoints(LEFT, RIGHT, angle=angle_value) num = Text(str, size=0.35, stroke_width=0).next_to(arc,UP) return VGroup(arc,num) arcs = VGroup(*[get_arc_text(str,angle_value) for str, angle_value in zip(strs,values)]) arcs.arrange(RIGHT)..
[024]Arc Class Structure Arc Class arc = Arc()
[023]Rectangle, Square, RoundedRectangle Rectangle rect = Rectangle() Square square = Square() RoundedRectangle rect = RoundedRectangle() corner_radius def round_test(self): values = [0.1, 0.5,1,1.5,2] def get_rect(val): rect = RoundedRectangle(corner_radius=val).scale(0.5) text = Text(str(val), size=0.3, stroke_width=0).next_to(rect, UP) return VGroup(rect,text) rects = VGroup(*[get_rect(v) for v in values]) rects.arrange(RIGHT) self...
블록기호 없음. 들여쓰기가 중요 파이썬에는 '{ }' 이런 블록 구분 기호가 없습니다. 단순한 발상이긴 한데, 이게 꽤나 코드 가독성을 높여줍니다. (지금까지 왜 이런 생각을 못했나 몰라... ^^) 비교해보겠습니다. //Java or C for (int i=0; i< 100; i++) { if (i%3 == 0) { sum += i } } # Python for i in range(101): if i%3 == 0 : sum += i 한눈에 봐도 간단해졌음을 알 수 있습니다. 파이썬에서는 들여쓰기를 가지고 블록을 구분합니다. 그래서, 들여쓰기 규칙을 지키는 것이 중요합니다. 스페이스 2개를 들여 쓰기로 정했다면, 이걸 계속 유지해야 합니다. 같은 들여쓰기를 한 줄에 대해서는 같은 블록으로 인정하고, 다시 공백 2개 더한 들여 쓰기는 하..
for 구문이 좀 이상한데? 파이썬 문법을 제대로 안 배우고, 그냥 C나 Java에서 했던 코딩 실력으로 대충 파이썬을 해보려는 분들이, 가장 처음 막히는 부분이 for 구문일 거라 생각합니다. C나 Java하고 목적은 같은데, 사용 방법이 꽤 다릅니다. 예제로 확인해보겠습니다. 1에서 100까지 더하는, for를 사용하는 전형적인 예제입니다. 파이썬으로는, sum=0 for i in range(101): sum += i print(sum) C나 Java에서는 이런 형태일 겁니다. sum = 0 for i=0 to 101{ sum += i } print(sum) 파이썬에서는 `for ~ in 튜플/리스트` 구문입니다. `in`을 사용하는 것이 처음에는 좀 어색하고 C/Java 방식이 더 편리한 것처럼 느낄 수 있으나, 조금만 더 사..