Member 14520123 Ответов: 1

Пересечение трех плоскостей


Я пытаюсь создать код python, который находит пересечение трех плоскостей, создавая уравнения плоскостей, затем используя правило Крамера для решения системы уравнений и, наконец, получая точку пересечения, если она существует.

Что я уже пробовал:

Я пытался использовать защиту fuvction, но я не знаю, как собрать все это вместе. Пожалуйста помочь
class Plane3D:
        def equation_plane(x1, y1, z1, x2, y2, z2, x3, y3, z3):
            a1 = x2 - x1 
            b1 = y2 - y1 
            c1 = z2 - z1 
            a2 = x3 - x1 
            b2 = y3 - y1 
            c2 = z3 - z1 
            a = b1 * c2 - b2 * c1 
            b = a2 * c1 - a1 * c2 
            c = a1 * b2 - b1 * a2 
            d = (- a * x1 - b * y1 - c * z1) 
            print ("The equation of the plane is "), 
            print (a, "x +" ,b, "y +" ,c, "z +" ,d, "= 0.")
            print (a)
            print(b)
            print(c)
            print(d)
            return equation_plane(x1, y1, z1, x2, y2, z2, x3, y3, z3)
       
        def cramers (self, p1, p2,p3):
            from numpy import linalg
            As=[[2,-1,5,1],[3,2,2,-6],[1,3,3,-1],[5,-2,-3,3]]
            Bs=[-3,-32,-47,49]
            Cs=[[2,-1,5,1],[3,2,2,-6],[1,3,3,-1],[5,-2,-3,3]]
            Xs=[]
            for i in range(0,len(B)):
                for j in range(0,len(B)):
                    C[j][i]=B[j]
                    if i>0:
                        C[j][i-1]=A[j][i-1]
                        X.append(round(linalg.det(C)/linalg.det(A),1))
                        return (X)

0x01AA

а) покажите, каковы ваши плоскости (либо координатная, либо параметрическая форма)
б) покажите вашему коду, как вы это сделали
В.) имейте в виду, что как только две плоскости параллельны (или, если быть достаточно точным, параллельны, например, для вычисления двойных чисел), решения не будет.

Воспользуйся Редактирование вопроса[^] чтобы улучшить ваш вопрос.

Member 14520123

класс Plane3D:
def equation_plane(x1, y1, z1, x2, y2, z2, x3, y3, z3):
a1 = x2 - x1
b1 = y2 - y1
c1 = z2 - z1
a2 = x3 - x1
b2 = y3 - y1
С2 = и Z3 - Z1 в
a = b1 * c2 - b2 * c1
b = a2 * c1 - a1 * c2
c = a1 * b2 - b1 * a2
d = (- a * x1 - b * y1 - c * z1)
print ("уравнение плоскости есть "),
выведите (a, "x +" ,b, "y +" ,c, "z +" ,d, "= 0.")
печать (а)
печать(b)
печать(c)
печать(d)
возврат equation_plane(x1, y1, z1, x2, y2, z2, x3, y3, z3)

def cramers (self, p1, p2,p3):
из numpy import linalg
Как=[[2,-1,5,1],[3,2,2,-6],[1,3,3,-1],[5,-2,-3,3]]
БС=[-3,-32,-47,49]
КС=[[2,-1,5,1],[3,2,2,-6],[1,3,3,-1],[5,-2,-3,3]]
Хз=[]
для i в диапазоне(0,len(B)):
для j в диапазоне(0,len(B)):
C[j][i]=B[j]
если я>0:
C[j][i-1]=A[j][i-1]
X. добавить(раунд(linalg.det(C)/linalg.det(A),1))
возврат (X)
Вот где я нахожусь я не знаю что делать дальше

MadMyche

Я отредактировал ваш вопрос, чтобы он содержал код

1 Ответов

Рейтинг:
2