suchen
HeimBackend-EntwicklungC++Programm zur Überprüfung der Ähnlichkeit zweier gegebener Dreiecke

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. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen
C# vs. c: Wo sich jede Sprache auszeichnetC# vs. c: Wo sich jede Sprache auszeichnetApr 12, 2025 am 12:08 AM

C# eignet sich für Projekte, die eine hohe Entwicklungseffizienz und plattformübergreifende Unterstützung erfordern, während C für Anwendungen geeignet ist, die eine hohe Leistung und die zugrunde liegende Kontrolle erfordern. 1) C# vereinfacht die Entwicklung, bietet Müllsammlung und reichhaltige Klassenbibliotheken, die für Anwendungen auf Unternehmensebene geeignet sind. 2) C ermöglicht den direkten Speicherbetrieb, der für Spielentwicklung und Hochleistungs-Computing geeignet ist.

Die fortgesetzte Verwendung von C: Gründe für seine AusdauerDie fortgesetzte Verwendung von C: Gründe für seine AusdauerApr 11, 2025 am 12:02 AM

C Gründe für die kontinuierliche Verwendung sind seine hohe Leistung, breite Anwendung und sich weiterentwickelnde Eigenschaften. 1) Leistung mit hoher Effizienz. 2) weit verbreitete: Glanz in den Feldern der Spieleentwicklung, eingebettete Systeme usw. 3) Kontinuierliche Entwicklung: Seit seiner Veröffentlichung im Jahr 1983 hat C weiterhin neue Funktionen hinzugefügt, um seine Wettbewerbsfähigkeit aufrechtzuerhalten.

Die Zukunft von C und XML: aufkommende Trends und TechnologienDie Zukunft von C und XML: aufkommende Trends und TechnologienApr 10, 2025 am 09:28 AM

Die zukünftigen Entwicklungstrends von C und XML sind: 1) C werden neue Funktionen wie Module, Konzepte und Coroutinen in den Standards C 20 und C 23 einführen, um die Programmierungseffizienz und -sicherheit zu verbessern. 2) XML nimmt weiterhin eine wichtige Position in den Datenaustausch- und Konfigurationsdateien ein, steht jedoch vor den Herausforderungen von JSON und YAML und entwickelt sich in einer prägnanteren und einfacheren Analyse wie die Verbesserungen von XMLSchema1.1 und XPATH3.1.

Moderne C -Entwurfsmuster: Erstellen skalierbarer und wartbarer SoftwareModerne C -Entwurfsmuster: Erstellen skalierbarer und wartbarer SoftwareApr 09, 2025 am 12:06 AM

Das moderne C -Designmodell verwendet neue Funktionen von C 11 und darüber hinaus, um flexiblere und effizientere Software aufzubauen. 1) Verwenden Sie Lambda -Ausdrücke und STD :: Funktion, um das Beobachtermuster zu vereinfachen. 2) Die Leistung durch mobile Semantik und perfekte Weiterleitung optimieren. 3) Intelligente Zeiger gewährleisten die Sicherheit und das Management von Ressourcen.

C Multithreading und Parallelität: Parallele Programmierung beherrschenC Multithreading und Parallelität: Parallele Programmierung beherrschenApr 08, 2025 am 12:10 AM

C Die Kernkonzepte von Multithreading und gleichzeitiger Programmierung umfassen Thread -Erstellung und -management, Synchronisation und gegenseitige Ausschluss, bedingte Variablen, Thread -Pooling, asynchrones Programmieren, gemeinsame Fehler und Debugging -Techniken sowie Leistungsoptimierung sowie Best Practices. 1) Erstellen Sie Threads mit der STD :: Thread -Klasse. Das Beispiel zeigt, wie der Thread erstellt und wartet. 2) Synchronisieren und gegenseitige Ausschluss, um std :: mutex und std :: lock_guard zu verwenden, um gemeinsam genutzte Ressourcen zu schützen und den Datenwettbewerb zu vermeiden. 3) Zustandsvariablen realisieren Kommunikation und Synchronisation zwischen Threads über std :: Condition_Variable. 4) Das Beispiel des Thread -Pools zeigt, wie die Threadpool -Klasse verwendet wird, um Aufgaben parallel zu verarbeiten, um die Effizienz zu verbessern. 5) Asynchrones Programmieren verwendet std :: als

C Deep Dive: Mastering Memory Management, Zeiger und Vorlagen beherrschenC Deep Dive: Mastering Memory Management, Zeiger und Vorlagen beherrschenApr 07, 2025 am 12:11 AM

Die Speicherverwaltung, Hinweise und Vorlagen von C sind Kernfunktionen. 1. Die Speicherverwaltung zuteilt manuell manuell und freisetzt Speicher durch neue und löscht und achten Sie auf den Unterschied zwischen Haufen und Stapel. 2. Zeiger erlauben den direkten Betrieb von Speicheradressen und verwenden Sie sie mit Vorsicht. Intelligente Zeiger können das Management vereinfachen. 3. Template implementiert die generische Programmierung, verbessert die Wiederverwendbarkeit und Flexibilität der Code und muss die Typableitung und Spezialisierung verstehen.

C- und Systemprogrammierung: Steuerung und Hardware-Interaktion mit niedriger EbeneC- und Systemprogrammierung: Steuerung und Hardware-Interaktion mit niedriger EbeneApr 06, 2025 am 12:06 AM

C eignet sich für die Systemprogrammierung und Hardware-Interaktion, da es Steuerfunktionen in der Nähe von Hardware und leistungsstarke Funktionen der objektorientierten Programmierung bietet. 1) C über Merkmale auf niedrigem Niveau wie Zeiger, Speicherverwaltung und Bitbetrieb können effizienter Betrieb auf Systemebene erreicht werden. 2) Die Hardware -Interaktion wird über Geräte -Treiber implementiert, und C kann diese Treiber so schreiben, dass sie mit Hardware -Geräten über die Kommunikation umgehen.

Spielentwicklung mit C: Aufbau von Hochleistungsspielen und SimulationenSpielentwicklung mit C: Aufbau von Hochleistungsspielen und SimulationenApr 05, 2025 am 12:11 AM

C eignet sich zum Aufbau von Hochleistungsspiel- und Simulationssystemen, da es nahezu Hardwaresteuerung und effiziente Leistung bietet. 1) Speicherverwaltung: Manuelle Steuerung reduziert die Fragmentierung und verbessert die Leistung. 2) Kompilierungszeitoptimierung: Inline-Funktionen und Schleifenerweiterung verbessern die Laufgeschwindigkeit. 3) Niedrige Operationen: Direkter Zugriff auf Hardware, Optimierung von Grafiken und physischem Computer.

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

MinGW – Minimalistisches GNU für Windows

MinGW – Minimalistisches GNU für Windows

Dieses Projekt wird derzeit auf osdn.net/projects/mingw migriert. Sie können uns dort weiterhin folgen. MinGW: Eine native Windows-Portierung der GNU Compiler Collection (GCC), frei verteilbare Importbibliotheken und Header-Dateien zum Erstellen nativer Windows-Anwendungen, einschließlich Erweiterungen der MSVC-Laufzeit zur Unterstützung der C99-Funktionalität. Die gesamte MinGW-Software kann auf 64-Bit-Windows-Plattformen ausgeführt werden.

SAP NetWeaver Server-Adapter für Eclipse

SAP NetWeaver Server-Adapter für Eclipse

Integrieren Sie Eclipse mit dem SAP NetWeaver-Anwendungsserver.

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

Dreamweaver Mac

Dreamweaver Mac

Visuelle Webentwicklungstools

SublimeText3 Linux neue Version

SublimeText3 Linux neue Version

SublimeText3 Linux neueste Version