Code:
#include <stdio.h>
#include <math.h>
void calculate(float ANG_ALPHA, float ANG_GAMMA, float* position)
{
float AX,BX,CX,AY,BY,CY,ANG_BETA,AB,AC,BC,ANG_A,ANG_B,ANG_C,COT_A,COT_B,COT_C,COT_ALPHA,COT_BETA,COT_GAMMA,KA,KB,KC,K,E,N;
// Positionsdaten der BAKEN müssen hier festgelegt werden//
AX=2.9;//a.x
AY=4.18;//a.y
BX=7.1;//b.x
BY=4.58;//b.y
CX=5.28;//c.x
CY=0.56;//c.y
////////////////////////////////////////////////////////////////////
ANG_ALPHA=ANG_ALPHA * M_PI / 180;
ANG_GAMMA=ANG_GAMMA * M_PI / 180;
ANG_BETA=2*M_PI - ANG_ALPHA - ANG_GAMMA;
AB = sqrt( pow((AX-BX),2) + pow((AY-BY),2) );
AC = sqrt( pow((AX-CX),2) + pow((AY-CY),2) );
BC = sqrt( pow((BX-CX),2) + pow((BY-CY),2) );
ANG_A = acos( (pow(AB, 2) + pow(AC,2) - pow(BC,2))/(2*AB*AC) );
ANG_B = acos( (pow(AB, 2) + pow(BC,2) - pow(AC,2))/(2*AB*BC) );
ANG_C = acos( (pow(AC, 2) + pow(BC,2) - pow(AB,2))/(2*AC*BC) );
COT_A = 1/tan(ANG_A);
COT_B = 1/tan(ANG_B);
COT_C = 1/tan(ANG_C);
COT_ALPHA = 1/tan(ANG_ALPHA);
COT_BETA = 1/tan(ANG_BETA);
COT_GAMMA = 1/tan(ANG_GAMMA);
KA = 1/(COT_A - COT_ALPHA);
KB = 1/(COT_B - COT_BETA);
KC = 1/(COT_C - COT_GAMMA);
K = KA + KB + KC;
E = (KA*AX + KB*BX + KC*CX)/K;
N = (KA*AY + KB*BY + KC*CY)/K;
position[0]= E;
position[1]= N;
}
int main()
{
printf("Bitte Winkel alpha (Winkel BC) eingeben:\n");
float alpha;
scanf("%f",&alpha);
printf("Bitte Winkel gamma (Winkel AB) eingeben:\n");
float gamma;
scanf("%f",&gamma);
float position[1];
calculate(alpha, gamma, position);
printf("x: %f\n",position[0]);
printf("y: %f\n",position[1]);
system("PAUSE");
}
Vielleicht hilf das jemanden, würde mich freuen!
Lesezeichen