|< 1 2 >| | 12 Einträge, 2 Seiten |
QuoteCreate a new SO3-rotation matrix.
QuoteComputes a string
"[[m00 m01 m02][m10 m11 m12][m20 m21 m22]]"
displaying the matrix elements. Optionally, a sprintf
format-string may be specified for the matrix
elements. Default is "%10.5f".
1
2
3
4
5
6
7
8
9
10
11
12
#!/usr/bin/perl
use warnings;
use strict;
use Math::SO3;
my $rotation=Math::SO3->new("zr" => 3.14159/2,
"xr" => 3.14159/4,
"zr" => 3.14159/8);
$rotation->format_matrix("%16.8f");
QuoteTherefore, WE use the convention
(a1 ' ) ( ) (a1)
(a2 ' ) = ( M ) (a2)
(a3 ' ) ( ) (a3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#!/usr/bin/perl
use warnings;
use strict;
use Math::SO3;
my $rotation=Math::SO3->new("zr" => 3.14159/2,
"xr" => 3.14159/4,
"zr" => 3.14159/8);
my @arr = (23, 34, 45);
my @result = $rotation * @arr;
for (@result) {
print "\t $_ \n";
}
make test
QuoteCode: (dl )1
2
3
4
5
6
7
8
9
10
11
12#!/usr/bin/perl
use warnings;
use strict;
use Math::SO3;
my $rotation=Math::SO3->new("zr" => 3.14159/2,
"xr" => 3.14159/4,
"zr" => 3.14159/8);
$rotation->format_matrix("%16.8f");
erhalt ich überhaupt nichts als ausgabe, nicht mal eine fehlermeldung, das script läuft durch und ich krieg keine fehlermeldung.
Quotedesweiteren ist in der manpage (und das ist die einzigste informationsquelle die ich zu dem modul hab, weder über google noch über cpan hab ich mehr infos gefunden) nicht einmal beschrieben wie ich denn diese rotationsmatrix verwende, [...]
Quote$rotation->translate_vectors($vec1, $vec2,
$vec3, $vec4, @other_vectors);
Destructively replace each single one of a list of
cscv's by the corresponding cbcv's. Note that vectors
must be packed-double-strings:
$vec=pack("d3",$xcoord,$ycoord,$zcoord);
Note: if vectors are "longer", say, like pack("d4", 5,8,10,1),
only the first three coordinates will be replaced.
This is very useful when working with homogenous coordinates.
Quotegehe ich mal von arrays aus
QuoteCode: (dl )1
2
3
4
5
6
7
8
9
10
11
12#!/usr/bin/perl
use warnings;
use strict;
use Math::SO3;
my $rotation=Math::SO3->new("zr" => 3.14159/2,
"xr" => 3.14159/4,
"zr" => 3.14159/8);
$rotation->format_matrix("%16.8f");
erhalt ich überhaupt nichts als ausgabe, nicht mal eine fehlermeldung, das script läuft durch und ich krieg keine fehlermeldung.
Ich sehe da kein print.
print rotation;
Math::SO3=SCALAR(0x870bf9c)
print $$rotation;
6&�&�/uQѿ
Quote"Packed double strings" sind es, s. Doku oben.
QuoteSollte nicht zumindest die Methode format_matrix einen lesbare Zeichenkette zurückliefern?
Quote$rotation->format_matrix("%16.8f"); gibt einen wert zurück, warscheinlich ist es das, was du willst.
QuoteWenn Du irgendwo "reingucken" willst, ist Data::Dumper ein heißer Tipp.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/usr/bin/perl
use warnings;
use strict;
use Math::SO3;
my $rotation = Math::SO3->new(
"zr" => 3.14159 / 2,
"xr" => 3.14159 / 4,
"zr" => 3.14159 / 8
);
print $rotation->format_matrix("%16.8f");
[[ -0.27059679 0.92388002 0.27059765] [ -0.65328251 -0.38268226 0.65328114] [ 0.70710631 -0.00000094 0.70710725]]
|< 1 2 >| | 12 Einträge, 2 Seiten |