Can't locate object method "transpose" via package "4.21926979366246" (perhaps you forgot to load "4.21926979366246"?) at /usr/local/share/perl/5.18.2/Math/Matrix.pm line 450. #### #!/usr/bin/perl use warnings; use strict; use Math::Trig qw(:pi :radial); use Math::Matrix; my ($x,$y,$z) = (1,1,1); my $radius = 5; my $segments = 12; my ($rho, $theta, $phi) = cartesian_to_spherical($x, $y, $z); ($theta,$phi) = ($phi,$theta); my $n = Math::Matrix->new ([cos($phi)*sin($theta)], [sin($theta)*sin($phi)], [cos($theta)]); my $u = Math::Matrix->new ([-sin($phi)], [cos($phi)], [0]); my $n_x_u = Math::Matrix->new ([cos($theta)*cos($phi)], [cos($theta)*sin($phi)], [-sin($theta)]); my $center = Math::Matrix->new ([$x], [$y], [$z]); for (my $v = 0; $v < $segments; $v++) { my $angle = $v*pi2/$segments; my $point = $radius * cos($angle) * $u + $radius * sin($angle) * $n_x_u + $center; print $point->[0][0] . ", " . $point->[1][0] . ", " . $point->[2][0] . "\n"; }