有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java获取内角

我有四个点组成凹四边形:

a(3,11)

b(11、9)

c(18、10)

d(8,1)

enter image description here

现在我想得到(b)角的内角,单位是度。 注意:内角大于180度


共 (2) 个答案

  1. # 1 楼答案

    最安全的方法是使用内积和叉积,内积可以使用两个向量(a->;b,b->;c)的4个点和内积公式计算

    <ab,bc> = |ab|*|bc|* cos (abc)
    cos(abc) =  |ab|*|bc| / <ab,bc> 
    

    这不足以唯一地分配角度,因为角度及其补码具有相同的cos,但具有不同的SIN,这就是交叉积来解决问题的地方

    ab * bc = |ab|*|bc| * sin(abc)
    

    可以使用端点坐标计算左侧部分,以便可以计算sin,计算sin和cos后,可以适当指定角度

  2. # 2 楼答案

    d点只是分散注意力。考虑(ABC)三角形:

    • 根据坐标很容易确定ab、bc和ca的长度
    • 然后可以用sin、cos或tan确定(ab、bc)内角
    • 你寻找的角度是360减去(ab,bc)内角