检查给定的两个三角形的相似性的程序

2023年 8月 27日 84.4k 0

在这个问题中,我们将学习检查两个给定三角形的相似性,从程序员的角度来看,这有许多现实世界的用例。

为了构建和管理事物的 2D 和 3D 模型,需要使用 CAD 系统,其中一个关键功能是比较两个三角形的能力。

例如,从事设计和施工的工程师可能需要使建筑物的基础测量与蓝图相匹配。工程师可以利用 CAD 工具快速评估基础的角度和边是否符合布局,该工具具有检查两个三角形相似性的内置功能。这有助于确保建筑物的结构稳定性和安全性。

此外,物体的3D模型是通过3D打印技术使用CAD软件制作的。为了确保在这种情况下精确打印模型并达到所需的比例,相似性检查会很有帮助。这对于复杂的模型至关重要,因为手动验证相似性可能很乏味且容易出错。

机器人领域的程序员可以通过使用相似性检查工具来确保机器人运动的精度。检查两个三角形的相似性有助于确保机械臂(通常具有多个关节)进行的复杂运动精确且恒定。

说明

现在让我们了解一些计算三角形相似度所涉及的数学。

如果两个三角形具有以下特征,则它们相似 -

  • 两个三角形的内角相等。

  • 三角形的对应边具有相同的比例。

判断两个三角形是否相似有三种方法:SSS、SAS、AA。让我们简要讨论每个定理。

SSS(边-边-边)标准

在两个给定的三角形中,如果三对边的比例相同,则这两个三角形相似。

检查给定的两个三角形的相似性的程序

让我们考虑上面给出的两个三角形。如果三对边的比例相等,则上述两个三角形根据SSS标准可以相似,即AC/PR = AB/PQ = CB/RQ

SAS(边-角-边)标准

在两个给定的三角形中,如果两对边的比例相同,并且两个三角形中两条边之间的角度相同,则这两个三角形相似。

检查给定的两个三角形的相似性的程序

以上面的三角形为例,如果 AB/PQ = BC/QR 且

AA(角度-角度)标准

在两个给定的三角形中,如果两个三角形的任意两个角相等,则这两个三角形相似。

检查给定的两个三角形的相似性的程序

如果我们以上面的三角形为例,那么如果

通常情况下,我们会得到三角形三个点的坐标,然后我们需要检查相似度。在这种情况下,我们将使用这个公式来计算距离。

检查给定的两个三角形的相似性的程序

在提供坐标时检查给定两个三角形的相似性的程序。

方法

让我们将整个程序解码为逐步算法

  • 将两个三角形的三个点的坐标作为输入。

  • 使用上面讨论的公式计算坐标之间的长度,即距离= Math。 sqrt(Math.pow(y2-y1,2)+Math.pow(x2-x1,2))

  • 计算出两个三角形所有边的长度后,计算所有对的比率。

  • 接下来,检查三个比例是否相同,如果相同,则打印三角形相似,否则打印三角形不相似。

现在,我们将编写实现上述算法的代码

示例

C++ 程序,用于在提供坐标时检查给定两个三角形的相似性。

#include
#include
using namespace std;

int main() {
double x1 = 0, y1 = 0, x2 = 3, y2 = 0, x3 = 0, y3 = 4; //coordinates of first triangle (x1, y1), (x2, y2), (x3, y3)
double p1 = 0, q1 = 0, p2 = 6, q2 = 0, p3 = 0, q3 = 8; //coordinates of second triangle (p1, q1), (p2, q2), (p3, q3)

// calculate the distance between the coordinates of the first triangle
double dist1 = sqrt(pow((x2 - x1), 2) + pow((y2 - y1), 2));
double dist2 = sqrt(pow((x3 - x2), 2) + pow((y3 - y2), 2));
double dist3 = sqrt(pow((x1 - x3), 2) + pow((y1 - y3), 2));

// calculate the distance between the coordinates of the second triangle
double dist4 = sqrt(pow((p2 - p1), 2) + pow((q2 - q1), 2));
double dist5 = sqrt(pow((p3 - p2), 2) + pow((q3 - q2), 2));
double dist6 = sqrt(pow((p1 - p3), 2) + pow((q1 - q3), 2));

// calculate the ratio of the length of the triangle
double ratio1 = dist1/dist4;
double ratio2 = dist2/dist5;
double ratio3 = dist3/dist6;

// check if the ratio of all three pairs of sides of the triangle are same, we are using SSS criteria
if ((ratio1 == ratio2) && (ratio2 == ratio3)) {
cout

相关文章

JavaScript2024新功能:Object.groupBy、正则表达式v标志
PHP trim 函数对多字节字符的使用和限制
新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
为React 19做准备:WordPress 6.6用户指南
如何删除WordPress中的所有评论

发布评论