C: Fläche eines Dreiecks im Raum berechnen

Aufgabenstellung:
Der Benutzer soll 3 Punkte (bestehend aus je 3 Koordinaten) eingeben können und bekommt anschließend die Fläche dieses Dreiecks im Raum. Dies ist eine Erweiterung der Aufgabe Länge einer Strecke im Raum berechnen.

Benötigte Formeln:
formel2
formel3

/**
 * Headerdatei fuer Palindrom
 * Funktiondeklarierung
 *
 * Rainer Hihn
 */

#include 
#include


/*
 * functions
 */
struct point readPoint();
float distance(struct point point1, struct point point2);
float areaTrinagle(struct point point1, struct point point2, struct point point3);

/*
 * structs
 */
struct point
{
    float rX;
    float rY;
    float rZ;
};
/**
 * Funktionen von 'Laenge einer Strecke im Raum'
 *
 * Rainer Hihn
 */

#include "strecke.h"

/**
 * x-, y- und z-Koordianten einlesen
 */
struct point readPoint()
{
    struct point userPoint;

    printf("Bitte x-Koordinate eingeben \n");
    scanf("%62f", &userPoint.rX);
    printf("Bitte y-Koordinate eingeben \n");
    scanf("%62f", &userPoint.rY);
    printf("Bitte z-Koordinate eingeben \n");
    scanf("%62f", &userPoint.rZ);

    return userPoint;
}

/**
 * Distanz zwischen 2 Punkten berechnen
 */
float distance(struct point point1, struct point point2)
{
    float rNewX = 0;
    float rNewY = 0;
    float rNewZ = 0;
    float rDistance = 0;

    rNewX = point1.rX - point2.rX;
    rNewY = point1.rY - point2.rY;
    rNewZ = point1.rZ - point2.rZ;

    rDistance = sqrt((rNewX * rNewX) + (rNewY * rNewY) + (rNewZ * rNewZ));

    return rDistance;
}

/**
 * Flaeche eines Dreicks berechnen
 * die Seitenlaengen werden mittles distance()
 * berechnet
 */
float areaTrinagle(struct point point1, struct point point2, struct point point3)
{
    float rA = 0; /* Seitenlaenge A */
    float rB = 0; /* Seitenlaenge A */
    float rC = 0; /* Seitenlaenge A */
    float rS = 0; /* halber Umfang */

    rA = distance(point1, point2);
    rB = distance(point2, point3);
    rC = distance(point3, point1);

    rS = (rA + rB + rC)/2;

    return sqrt(rS * (rS - rA) * (rS - rB) * (rS - rC));
}
/***********************
 * Laenge einer Strecke im Raum
 *
 * Rainer Hihn
 */

#include "strecke.h"

int main(void)
{
    /**
     * Variablendeklaration
     */
    struct point firstPoint;
    struct point secondPoint;
    struct point thirdPoint;

    printf("Entfernung berechnen \n");

    /**
     * einlesen der 3 Punkte
     */
    firstPoint = readPoint();
    secondPoint = readPoint();
    thirdPoint = readPoint();

    printf("Die Flaeche des Dreiecks betraegt %f \n", areaTrinagle(firstPoint, secondPoint, thirdPoint));

    return 0;
}

Comments are closed.