gpt4 book ai didi

java - java中3点的行列式

转载 作者:行者123 更新时间:2023-11-29 09:23:58 25 4
gpt4 key购买 nike

我正在创建一个 Java 应用程序。我需要计算三点的行列式。我计算了一下:

     static int determinant(Point point1, Point point2, Point point3) {
int x1 = point1.x;
int x2 = point2.x;
int x3 = point3.x;
int y1 = point1.y;
int y2 = point2.y;
int y3 = point3.y;
return (x1 * y2) + (x3 * y1) + (x2 * y3) - (x3 * y2) - (x2 * y1)
- (x1 * y3);
}

(我数学不好)但是,我在搜索时发现了以下内容:

public int ccw(int p1, int p2, int p3)
{
return (xPoints[p2] - xPoints[p1])*(yPoints[p3] - yPoints[p1]) - (yPoints[p2] - yPoints[p1])*(xPoints[p3] - xPoints[p1]);
}

哪一个是正确的方法?如果第一种方法是正确的,那么第二种方法的作用是什么?

最佳答案

两个方程是一样的。两者之间没有数学上的区别。

比我更擅长数学的人可能会给你数学证明。我选择走实用的路线,用 python 实现,因为我可以

def fun1(p1,p2,p3) :
print (p1[0]*p2[1])+(p3[0]*p1[1])+(p2[0]*p3[1]) - (p3[0]*p2[1]) - (p2[0]*
p1[1]) - (p1[0]*p3[1])

def fun2(p1,p2,p3) :
print (p2[0]-p1[0])*(p3[1]-p1[1])-(p2[1] - p1[1])*(p3[0]-p1[0])

>>> fun1((0,0),(9,1),(3,2))
15
>>> fun2((0,0),(9,1),(3,2))
15
>>> fun2((33,5),(4,6),(8,1))
141
>>> fun1((33,5),(4,6),(8,1))
141

对于任意 3 个点,fun1 和 fun2 将产生相同的结果。

关于java - java中3点的行列式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4257347/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com