我需要一些算法帮助,我的程序有问题。 我需要制作一个程序,其中用户输入协调3点和系数 对于那些由这3个点构成的三角形的线性函数,我需要比较形状的区域,使得函数穿过该三角形。
我会在这里粘贴代码,但有些东西用我的母语,我只是想知道你的算法这个解决方案,因为只有当点按照确切的顺序输入并且我无法处理那个
http://pastebin.com/vNzGuqX4 - 代码
例如,我使用此http://goo.gl/j18Ch0 代码没有完成,我只是注意到,如果我以不同的顺序输入它,它不起作用,如输入点“1 1 2 5 4 4 0.5 1 5”工作,但“4 4 1 1 2 5 0.5 1 5”不
答案 0 :(得分:1)
线性必须至少与三角形的2个边交叉。所以你可以先找到这两个交叉点,这3个顶点之一的这两个点会形成一个小三角形。使用此公式计算三角形的面积S = sqrt(l *(la)*(lb)*(lc))其中l =(a + b + c)/ 2和a,b,c是长度边缘。给定顶点的坐标应该很容易得到边的长度。一个是小三角形的区域,另一个是大三角区域减去小三角区域。
答案 1 :(得分:0)
如果你的三角形是ABC,那么一个好的方法是: