Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from manim import *
- def distance(A, B):
- """ Расстояние между точками A и B """
- a = np.linalg.norm(B - A)
- return a
- def direction_vector(A, B):
- """ Направляющий вектор прямой AB """
- v = np.array([B[0] - A[0], B[1] - A[1], B[2] - A[2]])
- return v
- def bisectors(A, B, C):
- """ Координаты основания биссектрисы угла A треугольника ABC """
- b = distance(A, C)
- c = distance(A, B)
- L = (b * B + c * C)/(b + c)
- return L
- def extend_segment(A, B, k):
- """ Координаты точки, лежащей на отрезке AB на k единиц от точки A """
- dAB = distance(A, B)
- vAB = np.array([B[0] - A[0], B[1] - A[1], B[2] - A[2]]) / dAB
- C = A + vAB * k
- return C
- def RightAngle3D(A, B, C, k, color, width):
- """ Отметка угла A треугольника ABC """
- m = bisectors(A, B, C)
- b = extend_segment(A, m, k)
- AB = Line(A, B)
- AC = Line(A, C)
- a = AB.get_projection(b)
- c = AC.get_projection(b)
- angle = Polygram(
- [a, b], [b, c]
- ).set_stroke(color = color, width = width)
- return angle
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement