projects
/
my-code
/
triang.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
5b9c5a6
)
bla
author
anonymous
<anonymous>
Fri, 9 Aug 2002 02:28:12 +0000
(
02:28
+0000)
committer
anonymous
<anonymous>
Fri, 9 Aug 2002 02:28:12 +0000
(
02:28
+0000)
triang.c
patch
|
blob
|
history
diff --git
a/triang.c
b/triang.c
index
c8e6d3f
..
04ec140
100644
(file)
--- a/
triang.c
+++ b/
triang.c
@@
-4,7
+4,7
@@
#define MAXSIGNAL 100
#define MAXSIGNAL 100
-double delta
1, delta2
;
+double delta
X1, deltaY1
;
/*
zweite Loesung ist achsensymmetrisch zur Verbindungslinie
/*
zweite Loesung ist achsensymmetrisch zur Verbindungslinie
@@
-18,19
+18,33
@@
void seek_target (float X1, float Y1, float X2, float Y2, int E1, int E2) {
/* E1 eigene Signalstaerke vom target */
/* E2 Signalstaerke des Targets vom Freund */
/* E1 eigene Signalstaerke vom target */
/* E2 Signalstaerke des Targets vom Freund */
-double zaehler, nenner,
zusatz
;
+double zaehler, nenner,
a_q, b_q, c_q, deltaX, deltaY
;
printf("Debug: %f %f %f %f %d %d \n", X1, Y1, X2, Y2, E1, E2);
printf("Debug: %f %f %f %f %d %d \n", X1, Y1, X2, Y2, E1, E2);
-zaehler=MAXSIGNAL*(1./E2-1./E1)-(X1-X2)*(X1-X2)-(Y1-Y2)*(Y1-Y2);
+/* quadratwerte der seitenlaengen im dreieck */
+a_q=(double)MAXSIGNAL/E2;
+b_q=(double)MAXSIGNAL/E1;
+c_q=(X1-X2)*(X1-X2)+(Y1-Y2)*(Y1-Y2);
+
+/* hilfsvariablen */
+deltaX=X1-X2;
+deltaY=Y1-Y2;
+zaehler=a_q-b_q-c_q;
printf("Debug: Zaehler %f\n", zaehler);
printf("Debug: Zaehler %f\n", zaehler);
-nenner=-2*sqrt(
(X1-X2)*(X1-X2)+(Y1-Y2)*(Y1-Y2)
);
+nenner=-2*sqrt(
c_q*b_q
);
printf("Debug: Nenner %f\n", nenner);
printf("Debug: Nenner %f\n", nenner);
-zusatz=sqrt((double)MAXSIGNAL/E1);
-printf("Debug: Zusatz %f\n", zusatz);
-delta1=zusatz*sin(acos(zaehler/(nenner*zusatz)));
-delta2=zaehler/nenner;
+printf("Debug: a=%f , b=%f ... und c=%f\n", sqrt(a_q), sqrt(b_q), sqrt(c_q));
+
+if ( (sqrt(a_q)+sqrt(b_q))>=sqrt(c_q) ) {
+ printf("impossible situation!\n");
+ deltaX1=0; deltaY1=0;
+}
+else {
+ deltaX1=sqrt(b_q)*cos(acos(deltaX/deltaY)-acos(zaehler/nenner));
+ deltaY1=sqrt(b_q)*sin(acos(deltaX/deltaY)-acos(zaehler/nenner));
+}
}
main() {
}
main() {
@@
-44,16
+58,16
@@
a=0;
b=0;
c=0;
d=10;
b=0;
c=0;
d=10;
-e=
1
0;
-f=
3
0;
+e=
9
0;
+f=
9
0;
seek_target (a, b, c, d, e, f);
/* wir sind im ursprung, kumpel 10 einheiten ueber uns! */
printf("Debug: seek_target ausgefuehrt!\n");
seek_target (a, b, c, d, e, f);
/* wir sind im ursprung, kumpel 10 einheiten ueber uns! */
printf("Debug: seek_target ausgefuehrt!\n");
-printf("1. Moeglichkeit: (%f;%f)\n", delta
1, delta2
);
-printf("2. Moeglichkeit: (%f;%f)\n", delta2, delta1);
+printf("1. Moeglichkeit: (%f;%f)\n", delta
X1, deltaY1
);
+
//
printf("2. Moeglichkeit: (%f;%f)\n", delta2, delta1);
}
}