//
vector $myvec;
$myvec = $myvec2;
$myvec = <<1,2,3>>;
//
vector $myvec = <<0,1,2>>;
$test = $myvec.z;//sets $test to 2
print ($myvec.y);//print 1
//$myvec.x = 3;//syntax error
$myvec = <<3,$myvec.y,$myvec.z>>;//
//
vector $myvec = <<1,2,3>>;
vector $myvec2 = <<3,4,5>>;
vector $myvec3 = $myvec +$myvec2;
print $myvec3;//print 4 6 8
//
vector $myvec = <<0,0,3>>;
vector $myvec2 = unit($myvec);//sets $myvec2 to <<0,0,1>>
//unit:unit运算以表示空间中方向和距离的一个向量作为输入,以指向相同方向但长度为1的向量作为输出。//
vector $myvec_eight = 8 * unit($myvec);//8个单位长度的和$myvec向量同方向的向量。
//mag:mag为magnitude(长度)的缩写,mag运算输出向量的长度。//
float $myvec_length = mag($myvec);//sets $mysec_length to 3
float $myvec_eight_length = mag($myvec_eight);//sets $mysec_eight_length to 8
//angle:angle运算输出两个向量之间的夹角。返回值以弧度值表示,实际角度值为乘以180/π//
vector $xvec = <<1,0,0>>;
vector $yvec = <<0,1,0>>;
float $xy_angle = angle($xvec,$yvec);
$pi = 3.1415926;
float $xy_angle_degrees = $xy_angle * 180 / $pi;//90 degrees
//cross:cross运算给出两个向量的叉积。叉积是与作为cross操作参数的两个向量正交(也就是垂直)的第三个向量。
vector $xvec = <<1,0,0>>;
vector $yvec = <<0,1,0>>;
vector $zvec = cross ($xvec,$yvec);//will be <<0,0,1>>
//
unit(cross($vector1,$vector2));//获得一个与$vector1和$vector2垂直的单位向量。
//dot:dot点积运算
float $vector_dot1 = dot($vector1,$vector2);
float $vector_dot2 = mag($vector1) * mag($vector2) * cos(angle($vector1,$vector2));
float $vector_dot1 == float $vector_dot2;
//dot与unit应用
vector $vector1 = <<3,0,0>>;
vector $vector2 = <<0,3,0>>;
float $vector_dot = dot(unit($vector1),unit($vector2));
switch ($vector_dot)
{
case 0.0:
print "Two vectors are perpendicular to each other\n";
break;
case 1.0:
print "Two vectors are parallel to each other\n";
break;
}
//rot:rot操作全称rotate(旋转);它将一个向量绕着另一个向量所定义的轴旋转一定的角度。
$pi = 3.1415926;//π
$twenty_degrees = 20 * $pi / 180;//20度转换为弧度数
vector $myvec = <<0,1,1>>;
vector $z_axis = <<0,0,1>>;
vector $rot_vec = rot($myvec,$z_axis,$twenty_degrees);
print $rot_vec;
//