int main() { GWindow gw; GArc pacman; int angle, sign; double limit; gw = newGWindow(600, 400); pacman = newGArc(0, (getHeight(gw) - PACMAN_SIZE) / 2, PACMAN_SIZE, PACMAN_SIZE, 45, 270); setFilled(pacman, true); setFillColor(pacman, "YELLOW"); add(gw, pacman); waitForClick(); angle = 45; sign = -1; limit = getWidth(gw) - PACMAN_SIZE; while (getX(pacman) < limit) { move(pacman, DELTA_X, 0); angle += sign * DELTA_THETA; if (angle == 0 || angle == 45) sign = -sign; setStartAngle(pacman, angle); setSweepAngle(pacman, 360 - 2 * angle); pause(PAUSE_TIME); } return 0; }
//------------------------------------------------------------------------------ // setSlotSweepAngle() -- //------------------------------------------------------------------------------ bool AnalogDial::setSlotSweepAngle(const base::Number* newSweepAngle) { bool ok = false; if (newSweepAngle != nullptr) ok = setSweepAngle(newSweepAngle->getReal()); return ok; }
//------------------------------------------------------------------------------ // updateData() //------------------------------------------------------------------------------ void DialArcSegment::updateData(const double dt) { BaseClass::updateData(dt); if (isDynamic) setSweepAngle(getInstValue()); }