通常情况下,我们会得到三角形三个点的坐标,然后我们需要检查相似度。在这种情况下,我们将使用这个公式来计算距离。
在提供坐标时检查给定两个三角形的相似性的程序。
方法
让我们将整个程序解码为逐步算法
将两个三角形的三个点的坐标作为输入。
使用上面讨论的公式计算坐标之间的长度,即距离= Math。 sqrt(Math.pow(y2-y1,2)+Math.pow(x2-x1,2))
计算出两个三角形所有边的长度后,计算所有对的比率。
接下来,检查三个比例是否相同,如果相同,则打印三角形相似,否则打印三角形不相似。
现在,我们将编写实现上述算法的代码
示例
C++ 程序,用于在提供坐标时检查给定两个三角形的相似性。
#include <iostream>
#include <cmath>
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 << "The two triangles are similar." << endl;
} else {
cout << "The two triangles are not similar." << endl;
}
return 0;
}
输出
The two triangles are similar.
复杂性
时间复杂度:O(1),因为无论输入大小如何,此代码都会执行固定数量的计算。
空间复杂度:O(1),因为代码使用固定数量的变量来存储输入值和结果,而不管输入的大小。
在提供坐标时检查给定两个三角形的相似性的程序。
方法
让我们将整个程序解码为逐步算法
现在,我们将编写实现上述算法的代码。
示例
C++ 程序,用于在提供角度时检查给定两个三角形的相似性。
#include <iostream>
using namespace std;
bool check_aa(int a1,int a2,int a3,int a4,int a5,int a6){
if((a1==a4 || a1==a5 || a1==a6) && (a2==a4 || a2==a5 || a2==a6))
return true;
else
return false;
}
int main(){
// Input: the angles of the triangles
double a1 = 30, a2 = 60, a3 = 90; //angles of triangle A
double a4 = 60, a5 = 90, a6 = 30; //angles of triangle B
bool similar= check_aa(a1,a2,a3,a4,a5,a6);
if (similar)
cout << "The two triangles are similar." << endl;
else
cout << "The two triangles are not similar." << endl;
}
输出
The two triangles are similar.
复杂性
时间复杂度:O(1),因为无论输入大小如何,此代码都会执行固定数量的计算。
空间复杂度:O(1),因为代码使用固定数量的变量来存储输入值和结果,而不管输入的大小。
结论
在本文中,我们尝试基于两种情况解释检查两个三角形相似性的方法,一种是提供边作为输入,另一种是提供角度作为输入。我希望这篇文章可以帮助您更好地学习这个概念。