Klicken Sie auf hier für die Idee
python3.7
Berechnen Sie, ob der __ Punkt P </ font> __ in der folgenden Abbildung innerhalb oder außerhalb der Abbildung liegt.
__O (0,0) __ steht für __ Ursprung __. Außerdem repräsentieren __A (2,2) __, __B (3,1) __, __C (3,3) __ die Eckpunkte der __Form. __P (x, y) __ ist __ beliebiger Punkt __.
Berechnen Sie so, dass die Richtungen der __outer-Produkte dieselben __ sind wie in der folgenden Abbildung gezeigt.
Definition der Koordinaten ↓
python
import numpy
#Koordinaten von Punkt A.
A = numpy.array((6, 5))
#Koordinaten von Punkt B.
B = numpy.array((3, 1))
#Koordinaten von Punkt C.
C = numpy.array((9, 1))
Berechnung des äußeren Produkts ↓
python
#Ob der Punkt P in der Figur ist
def p(x, y):
#Koordinaten von Punkt P.
P = numpy.array((x, y))
#Äußeres Produkt des Vektors BP und des Vektors BA
abp = numpy.outer(P-B, A-B)
#Äußeres Produkt von Vektor BC und Vektor BP
pbc = numpy.outer(C-B, P-B)
#Äußeres Produkt von Vektor CA und Vektor CP
apc = numpy.outer(A-C, P-C)
#Matrixexpression des äußeren Produkts von Vektor BP und Vektor BA
abp = numpy.linalg.det(abp)
#Matrixexpression des äußeren Produkts von Vektor BC und Vektor BP
pbc = numpy.linalg.det(pbc)
#Matrixexpression des äußeren Produkts von Vektor CA und Vektor CP
apc = numpy.linalg.det(apc)
#Gibt True zurück, wenn der Matrixausdruck des äußeren Produkts von Vektor BP und Vektor BA mit dem Vorzeichen des anderen Matrixausdrucks übereinstimmt
if numpy.sign(abp)==numpy.sign(pbc) and numpy.sign(abp)==numpy.sign(pbc):
return True
#Gibt False zurück, wenn der Matrixausdruck des äußeren Produkts von Vektor BP und Vektor BA nicht mit dem Vorzeichen des anderen Matrixausdrucks übereinstimmt.
else:
return False
Code
code.py
import numpy
#Koordinaten von Punkt A.
A = numpy.array((6, 5))
#Koordinaten von Punkt B.
B = numpy.array((3, 1))
#Koordinaten von Punkt C.
C = numpy.array((9, 1))
#Ob der Punkt P in der Figur ist
def p(x, y):
#Koordinaten von Punkt P.
P = numpy.array((x, y))
#Äußeres Produkt des Vektors BP und des Vektors BA
abp = numpy.outer(P-B, A-B)
#Äußeres Produkt von Vektor BC und Vektor BP
pbc = numpy.outer(C-B, P-B)
#Äußeres Produkt von Vektor CA und Vektor CP
apc = numpy.outer(A-C, P-C)
#Matrixexpression des äußeren Produkts von Vektor BP und Vektor BA
abp = numpy.linalg.det(abp)
#Matrixexpression des äußeren Produkts von Vektor BC und Vektor BP
pbc = numpy.linalg.det(pbc)
#Matrixexpression des äußeren Produkts von Vektor CA und Vektor CP
apc = numpy.linalg.det(apc)
#Gibt True zurück, wenn der Matrixausdruck des äußeren Produkts von Vektor BP und Vektor BA mit dem Vorzeichen des anderen Matrixausdrucks übereinstimmt
if numpy.sign(abp)==numpy.sign(pbc) and numpy.sign(abp)==numpy.sign(pbc):
return True
#Gibt False zurück, wenn der Matrixausdruck des äußeren Produkts von Vektor BP und Vektor BA nicht mit dem Vorzeichen des anderen Matrixausdrucks übereinstimmt.
else:
return False
print(p(3, 1))#Ausgabeergebnis:True
print(p(2, 2))#Ausgabeergebnis:True
print(p(8,14))#Ausgabeergebnis:False
__Ergänzung __ Wenn sich __Punkt P auf der Linie __ befindet, wird Punkt P in der __Figur als __ berechnet.