解决方案的 C++ 替代算法

标签 c++ algorithm

我需要算法方面的帮助,我的程序有问题。 我需要制作一个程序,用户输入 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”不会

最佳答案

直线必须至少与三角形的两条边相交。所以你可以先找到这2个交点,这2个点和3个顶点中的一个会组成一个小三角形。使用此等式计算三角形的面积 S = sqrt(l * (l-a) * (l-b) * (l-c)) 其中 l = (a+b+c)/2 和 a、b、c 是边缘。给定顶点坐标应该很容易得到边的长度。一个是小三角形的面积,一个是大三角形减去小三角形的面积。

关于解决方案的 C++ 替代算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20238707/

相关文章:

c++ - SQL 选择多个 ids firebird

c++ - 此像素着色器中的漫反射和镜面反射

algorithm - 在图表中寻找完美匹配

c - 稀疏矩阵乘法期间的最后一个元素不打印?

c++ - 如何在 Windows 8 中获取事件窗口的标题颜色

c++ - C++中所有非成员函数指针的大小是否相同

python - 比较测验的两种不同解决方案

javascript - 转换表索引

algorithm - 通过在每一步递增相邻节点来找到使所有树节点为零所需的最小值

c++ - 类主体之外的模板定义