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