echo "Converting to a unit vector\n"; $v->normalize(); echo $v->toString() . "\n"; echo "Length after normalizing: " . $v->length() . "\n"; echo "Reversing vector\n"; $v->reverse(); echo $v->toString() . "\n"; echo "==\nVector from tuple\n"; $w = new Math_Vector($t); echo "Cartesian distance(v,w) = " . $v->distance($w) . "\n"; echo "Manhattan distance(v,w) = " . $v->distance($w, 'manhattan') . "\n"; echo "Chessboard distance(v,w) = " . $v->distance($w, 'chessboard') . "\n"; echo "Vector v: " . $v->toString() . "\n"; echo "Vector w: " . $w->toString() . "\n"; echo "==\nVector from another vector\n"; $z = new Math_Vector(new Math_Vector(range(2, 5))); echo $z->toString() . "\n"; echo "==\nVector3 vector\n"; $x = new Math_Vector3(new Math_Tuple(array(1, 0, 1))); echo $x->toString() . "\n"; echo "==\nVector2 vector\n"; $y = new Math_Vector2(array(1, 3)); echo $y->toString() . "\n"; echo "==\nInvalid vector\n"; $bar = new Math_Vector("foo"); if ($bar->isValid()) { echo "bar is good\n"; } else { echo "bar is bad\n"; } print_r($bar);
<?php require_once "Math/Vector/Vector.php"; require_once "Math/Vector/Vector2.php"; require_once "Math/Vector/Vector3.php"; require_once "Math/Vector/VectorOp.php"; $v1 = new Math_Vector2(array(1, 2)); $v2 = new Math_Vector2(array(2, 4)); $w1 = new Math_Vector3(array(2, 3, 1)); $w2 = new Math_Vector3(array(1, -1, 0)); $w3 = new Math_Vector3(array(7, 3, 2)); echo date("Y-m-d H:i:s") . "\n"; echo "==\nVector v1: " . $v1->toString() . "\n"; echo "Vector v2: " . $v2->toString() . "\n"; $r = Math_VectorOp::add($v1, $v2); echo "v1 + v2: " . $r->toString() . "\n"; $r = Math_VectorOp::substract($v1, $v2); echo "v1 - v2: " . $r->toString() . "\n"; $r = Math_VectorOp::multiply($v1, $v2); echo "v1 * v2: " . $r->toString() . "\n"; $r = Math_VectorOp::divide($v1, $v2); echo "v1 / v2: " . $r->toString() . "\n"; echo "==\nVector w1: " . $w1->toString() . "\n"; echo "Vector w2: " . $w2->toString() . "\n"; echo "Vector w3: " . $w3->toString() . "\n"; $r = Math_VectorOp::scale(2.0, $w1); echo " 2.0 * w1 = " . $r->toString() . "\n"; $r = Math_VectorOp::dotProduct($w1, $w2); echo "w1 . w2 = {$r}\n"; $r = Math_VectorOp::crossProduct($w2, $w3); echo "w2 x w3 = " . $r->toString() . "\n";