corrected formel
[my-code/triang.git] / triang.c
1 #include <stdio.h>
2 #include <math.h>
3
4 #define MAXSIGNAL 100
5
6 double *delta1, *delta2; 
7
8         /*
9         zweite Loesung ist achsensymmetrisch zur Verbindungslinie
10         zwischen Freund und einem selbst, also nur dX und dY vertauscht. 
11         */
12
13 void seek_target (float X1, float Y1, float X2, float Y2, int E1, int E2) {
14         
15         /* (X1,Y1) eigene Koordinaten */
16         /* (X2,Y2) freundliche Koordinaten */
17         /* E1 eigene Signalstaerke vom target */
18         /* E2 Signalstaerke des Targets vom Freund */
19
20 // printf("Debug: %f %f %f %f %d %d \n", X1, Y1, X2, Y2, E1, E2);
21
22 double zaehler, nenner, zusatz;
23
24 zaehler=MAXSIGNAL*(1./E1-1./E2)-(X1-X2)*(X1-X2)-(Y1-Y2)*(Y1-Y2);
25 nenner=2*sqrt((X1-X2)*(X1-X2)+(Y1-Y2)*(Y1-Y2));
26 zusatz=sqrt((double)MAXSIGNAL/E1);
27
28 *delta1=zusatz*sin(acos(zaehler/(nenner*zusatz)));
29 *delta2=zaehler/nenner;
30 }
31
32 main() {
33
34 /* beispiel */
35
36 printf("Debug: funzt noch ...\n");
37
38 float a, b, c, d;
39 int e, f;
40
41 a=0;
42 b=0;
43 c=0;
44 d=10;
45 e=90;
46 f=35;
47
48 seek_target (a, b, c, d, e, f);
49 /* wir sind im ursprung, kumpel 10 einheiten ueber uns! */
50
51 printf("Debug: seek_target ausgefuehrt!\n");
52
53 printf("1. Moeglichkeit: (%f;%f)\n", *delta1, *delta2);
54 printf("2. Moeglichkeit: (%f;%f)\n", *delta2, *delta1);
55
56 }
57