Advertisement
NikaGreg

Untitled

Apr 28th, 2023
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.21 KB | None | 0 0
  1. from manim import *
  2.  
  3. def distance(A, B):
  4.     """ Расстояние между точками A и B """
  5.     a = np.linalg.norm(B - A)
  6.     return a
  7.  
  8.  
  9. def direction_vector(A, B):
  10.     """ Направляющий вектор прямой AB """
  11.     v = np.array([B[0] - A[0], B[1] - A[1], B[2] - A[2]])
  12.     return v
  13.  
  14.  
  15. def bisectors(A, B, C):
  16.     """ Координаты основания биссектрисы угла A треугольника ABC """
  17.     b = distance(A, C)
  18.     c = distance(A, B)
  19.     L = (b * B + c * C)/(b + c)
  20.     return L
  21.  
  22. def extend_segment(A, B, k):
  23.     """ Координаты точки, лежащей на отрезке AB на k единиц от точки A """
  24.     dAB = distance(A, B)
  25.     vAB = np.array([B[0] - A[0], B[1] - A[1], B[2] - A[2]]) / dAB
  26.     C = A + vAB * k
  27.     return C
  28.  
  29. def RightAngle3D(A, B, C, k, color, width):
  30.     """ Отметка угла A треугольника ABC """
  31.     m = bisectors(A, B, C)
  32.     b = extend_segment(A, m, k)
  33.     AB = Line(A, B)
  34.     AC = Line(A, C)
  35.     a = AB.get_projection(b)
  36.     c = AC.get_projection(b)  
  37.     angle = Polygram(
  38.         [a, b], [b, c]
  39.     ).set_stroke(color = color, width = width)
  40.     return angle
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement