/** * Draw single step on a axis * * Draws a step on a axis at the current position * * @param ezcGraphRenderer $renderer Renderer to draw the step with * @param ezcGraphCoordinate $position Position of step * @param ezcGraphCoordinate $direction Direction of axis * @param int $axisPosition Position of axis * @param int $size Step size * @param ezcGraphColor $color Color of axis * @return void */ public function drawStep(ezcGraphRenderer $renderer, ezcGraphCoordinate $position, ezcGraphCoordinate $direction, $axisPosition, $size, ezcGraphColor $color) { if (!($this->innerStep || $this->outerStep)) { return false; } $drawStep = false; if ($axisPosition === ezcGraph::CENTER && $this->innerStep || $axisPosition === ezcGraph::BOTTOM && $this->outerStep || $axisPosition === ezcGraph::TOP && $this->innerStep || $axisPosition === ezcGraph::RIGHT && $this->outerStep || $axisPosition === ezcGraph::LEFT && $this->innerStep) { // Turn direction vector to left by 90 degrees and multiply // with major step size $stepStart = new ezcGraphCoordinate($position->x + $direction->y * $size, $position->y - $direction->x * $size); $drawStep = true; } else { $stepStart = $position; } if ($axisPosition === ezcGraph::CENTER && $this->innerStep || $axisPosition === ezcGraph::BOTTOM && $this->innerStep || $axisPosition === ezcGraph::TOP && $this->outerStep || $axisPosition === ezcGraph::RIGHT && $this->innerStep || $axisPosition === ezcGraph::LEFT && $this->outerStep) { // Turn direction vector to right by 90 degrees and multiply // with major step size $stepEnd = new ezcGraphCoordinate($position->x - $direction->y * $size, $position->y + $direction->x * $size); $drawStep = true; } else { $stepEnd = $position; } if ($drawStep) { $renderer->drawStepLine($stepStart, $stepEnd, $color); } }