Thread Math::Trig - Funktionen (6 answers)
Opened by supersucker at 2005-04-16 16:55

supersucker
 2005-04-16 19:02
#53855 #53855
User since
2005-03-17
118 Artikel
BenutzerIn
[default_avatar]
danke soweit,

hätte vielleicht auch mal cpan ein bisschen genauer durchsuchen können, oder matheboards, dann hätt ich gesehen dass man vom bogenmaß zu grad kommt indem man einfach das bogenmaß * 180 nimmt und durch pi teilt......:-)

nun hab ich aber ein anderes problem, dessen ursache mir völlig schleierhaft ist:

führe ich folgendes kleines script aus:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/usr/bin/perl

use Math::Trig qw(tan sec csc cot asin acos atan asec acsc acot sinh cosh tanh sech csch coth asinh acosh atanh asech acsch acoth);

sub RadToDegree()
{
return (($_[0] * 180)/ Math::Trig->pi());
}

my $beta_Angle_Rad = acos(-0.880251132856693);
my $beta_Angle_Deg = &RadToDegree($beta_Angle_Rad);

print "$beta_Angle_Rad\n";
print "$beta_Angle_Deg";


krieg ich die richtigen Werte raus, sowohl für den Winkel in Rad (also bogenmaß) als auch in grad (das wäre 2.64718751654284 für rad und
151.672672277622 grad)

mache ich jedoch GENAU das gleiche in meinem hauptscript, also:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#!/usr/bin/perl

use Math::Trig qw(tan sec csc cot asin acos atan asec acsc acot sinh cosh tanh sech csch coth asinh acosh atanh asech acsch acoth);

sub RadToDegree()
{
return (($_[0] * 180)/ Math::Trig->pi());
}

.................ca 1000 zeilen code..................

my $beta_Angle_Rad = acos(-0.880251132856693);
my $beta_Angle_Deg = &RadToDegree($beta_Angle_Rad);

print "$beta_Angle_Rad\n";
print "$beta_Angle_Deg";


krieg ich die fehlermeldung:

Undefined subroutine &FRAG_LIB::acos called at /root/development/eclipse/eclipse/workspace/PDB_FRAGMENT_LIB/bin/PDBParser.pl line 752, <FILE> line 15082.

rufe ich hingegen die acos-funktion so auf:
Code: (dl )
my $beta_Angle_Rad = Math::Trig->acos(-0.880251132856693);


passiert etwas was ich erst recht nicht verstehe, ich kriege nämlich dann
immer die gleichen falschen werte für RAD und GRAD (immer 90 grad) raus, egal was ich acos übergebe (die funktion wird in einer schleife aufgerufen, bei jedem aufruf übergeb ich der acos-funktion einen anderen wert)

ich bin kein perl-experte, hätte aber gedacht mich mittlerweile in der sprache ganz gut auszukennen, aber mit diesem verhalten kann ich überhaupt gar nichts anfangen und hab nicht die geringste ahnung was da wo falsch läuft.......

ich wäre echt dankbar wenn mir jemand sagen könnte was da nicht passt, bzw. was ich an perl offensichtlich noch nicht verstanden habe.

danke für jede hilfe, micha

View full thread Math::Trig - Funktionen