Heim  >  Artikel  >  Backend-Entwicklung  >  Programm zur Überprüfung der Ähnlichkeit zweier gegebener Dreiecke

Programm zur Überprüfung der Ähnlichkeit zweier gegebener Dreiecke

WBOY
WBOYnach vorne
2023-08-25 17:33:03808Durchsuche

In dieser Frage lernen wir, die Ähnlichkeit zweier gegebener Dreiecke zu überprüfen, was aus der Sicht eines Programmierers viele reale Anwendungsfälle hat.

Um 2D- und 3D-Modelle von Dingen zu erstellen und zu verwalten, müssen Sie CAD-Systeme verwenden. Eine der Hauptfunktionen ist die Möglichkeit, zwei Dreiecke zu vergleichen.

Zum Beispiel müssen Ingenieure, die an Entwurf und Bau arbeiten, möglicherweise die Fundamentmaße des Gebäudes mit den Bauplänen abgleichen. Mithilfe von CAD-Tools, die über eine integrierte Funktion zur Überprüfung der Ähnlichkeit zweier Dreiecke verfügen, können Ingenieure schnell beurteilen, ob die Winkel und Seiten eines Fundaments zum Layout passen. Dies trägt dazu bei, die strukturelle Stabilität und Sicherheit des Gebäudes zu gewährleisten.

Darüber hinaus wird das 3D-Modell des Objekts mittels CAD-Software durch 3D-Drucktechnologie hergestellt. Um sicherzustellen, dass das Modell in diesem Fall genau und in den gewünschten Proportionen gedruckt wird, kann eine Ähnlichkeitsprüfung hilfreich sein. Dies ist für komplexe Modelle von entscheidender Bedeutung, da die manuelle Validierung von Ähnlichkeiten mühsam und fehleranfällig sein kann.

Programmierer im Bereich Robotik können die Genauigkeit von Roboterbewegungen sicherstellen, indem sie Tools zur Ähnlichkeitsprüfung verwenden. Die Überprüfung der Ähnlichkeit zweier Dreiecke trägt dazu bei, sicherzustellen, dass komplexe Bewegungen, die von Roboterarmen (oft mit mehreren Gelenken) ausgeführt werden, präzise und konstant sind.

Anleitung

Lassen Sie uns nun einige der mathematischen Grundlagen zur Berechnung der Dreiecksähnlichkeit verstehen.

Zwei Dreiecke sind ähnlich, wenn sie die folgenden Eigenschaften aufweisen -

  • Die Innenwinkel zweier Dreiecke sind gleich.

  • Entsprechende Seiten eines Dreiecks haben die gleichen Proportionen.

Es gibt drei Methoden, um festzustellen, ob zwei Dreiecke ähnlich sind: SSS, SAS und AA. Lassen Sie uns jeden Satz kurz diskutieren.

SSS (Side-Side-Side) Standard

In zwei gegebenen Dreiecken sind zwei Dreiecke ähnlich, wenn die Proportionen der drei Seitenpaare gleich sind.

Programm zur Überprüfung der Ähnlichkeit zweier gegebener Dreiecke

Betrachten wir die beiden oben angegebenen Dreiecke. Wenn die Proportionen der drei gegenüberliegenden Seiten gleich sind, können die beiden oben genannten Dreiecke gemäß dem SSS-Standard ähnlich sein, d. h. AC/PR = AB/PQ = CB/RQ

SAS-Standard (Side-Angle-Side)

In zwei gegebenen Dreiecken sind zwei Dreiecke ähnlich, wenn die Proportionen der beiden Seitenpaare gleich sind und der Winkel zwischen den beiden Seiten in den beiden Dreiecken gleich ist.

Programm zur Überprüfung der Ähnlichkeit zweier gegebener Dreiecke

Nehmen wir das obige Dreieck als Beispiel: Wenn AB/PQ = BC/QR und

AA (Winkel-Winkel)-Standard

Wenn in zwei gegebenen Dreiecken zwei beliebige Winkel der beiden Dreiecke gleich sind, dann sind die beiden Dreiecke ähnlich.

Programm zur Überprüfung der Ähnlichkeit zweier gegebener Dreiecke

Wenn wir das obige Dreieck als Beispiel nehmen, dann sind diese beiden Dreiecke ähnlich, wenn

Normalerweise erhalten wir die Koordinaten der drei Punkte des Dreiecks und müssen dann die Ähnlichkeit überprüfen. In diesem Fall verwenden wir diese Formel zur Berechnung der Entfernung.

Programm zur Überprüfung der Ähnlichkeit zweier gegebener Dreiecke

Ein Programm, das die Ähnlichkeit zweier Dreiecke prüft, wenn Koordinaten angegeben werden.

Methode

Lassen Sie uns das gesamte Programm in einen Schritt-für-Schritt-Algorithmus dekodieren

  • Nehmen Sie die Koordinaten der drei Punkte der beiden Dreiecke als Eingabe.

  • Berechnen Sie die Länge zwischen den Koordinaten mithilfe der oben beschriebenen Formel, d. h. Entfernung = Mathematik. sqrt(Math.pow(y2-y1,2)+Math.pow(x2-x1,2))

  • Berechnen Sie nach der Berechnung der Längen aller Seiten zweier Dreiecke das Verhältnis aller Paare.

  • Überprüfen Sie als Nächstes, ob die drei Proportionen gleich sind. Wenn sie gleich sind, drucken Sie die Dreiecke als ähnlich aus, andernfalls drucken Sie die Dreiecke als nicht ähnlich aus.

Jetzt schreiben wir den Code, der den obigen Algorithmus implementiert

Beispiel

C++-Programm zur Überprüfung der Ähnlichkeit zweier gegebener Dreiecke, wenn Koordinaten angegeben werden.

#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;
}

Ausgabe

The two triangles are similar.

Komplexität

Zeitkomplexität: O(1), da dieser Code unabhängig von der Eingabegröße eine feste Anzahl von Berechnungen durchführt.

Raumkomplexität: O(1), da der Code unabhängig von der Größe der Eingabe eine feste Anzahl von Variablen zum Speichern von Eingabewerten und Ergebnissen verwendet.

Ein Programm, das die Ähnlichkeit zweier Dreiecke prüft, wenn Koordinaten angegeben werden.

Methode

Lassen Sie uns das gesamte Programm in einen Schritt-für-Schritt-Algorithmus dekodieren

  • Nehmen Sie die Winkel des Dreiecks als Eingabe.

  • Vergleichen Sie Winkel und prüfen Sie, ob zwei beliebige Winkel eines Dreiecks gleich sind. Hier verwenden wir das AA-Kriterium.

  • Wenn zwei beliebige Winkel gleich sind, sind die gedruckten Dreiecke ähnlich, andernfalls sind die gedruckten Dreiecke nicht ähnlich.

Jetzt schreiben wir den Code, der den obigen Algorithmus implementiert.

Beispiel

C++-Programm zur Überprüfung der Ähnlichkeit zweier gegebener Dreiecke, wenn Winkel angegeben werden.

#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),因为代码使用固定数量的变量来存储输入值和结果,而不管输入的大小。

结论

在本文中,我们尝试基于两种情况解释检查两个三角形相似性的方法,一种是提供边作为输入,另一种是提供角度作为输入。我希望这篇文章可以帮助您更好地学习这个概念。

Das obige ist der detaillierte Inhalt vonProgramm zur Überprüfung der Ähnlichkeit zweier gegebener Dreiecke. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen