Example #1
0
Circle min_circle(Point *p, int n){
  int i, j, k; Point t; Circle c = Circle1(p[0]);
  
  /* Randomize point array to avoid doctored input - may modify the
     limit on the for loop to increase/decrease randomness */
  for(i = 0; i < n; i++){
    j = rand() % n;
    k = rand() % n;
    t = p[j]; p[j] = p[k]; p[k] = t;
  }
  
  for(i = 1; i < n; i++) if(!inside(p[i], c)){ c = Circle1(p[i]);
  for(j = 0; j < i; j++) if(!inside(p[j], c)){ c = Circle2(p[i],p[j]);
  for(k = 0; k < j; k++) if(!inside(p[k], c))  c = Circle3(p[i],p[j],p[k]);}}
  return c;
}
Example #2
0
int main()
{
    sf::RenderWindow Game(sf::VideoMode(800, 600), ".voidswarm");
    sf::CircleShape Circle1(50.f);
    sf::CircleShape Circle2(50.f);
    Circle2.setPosition(200, 200);
    Circle1.setFillColor(sf::Color::Blue);
    Circle2.setFillColor(sf::Color::Green);
    sf::Vector2i localPos1;
    sf::Vector2i localPos2;
    sf::Event::MouseWheelEvent Wheel_Event;
    Wheel_Event.delta=0;
    while (Game.isOpen())
    {
        if (sf::Mouse::isButtonPressed(sf::Mouse::Left))
        {
            localPos1=sf::Mouse::getPosition(Game);
            Circle1.setPosition(localPos1.x-Circle1.getRadius(), localPos1.y-Circle1.getRadius());
        }

        if (sf::Mouse::isButtonPressed(sf::Mouse::Right))
        {
            localPos2=sf::Mouse::getPosition(Game);
            Circle2.setPosition(localPos2.x-Circle2.getRadius(), localPos2.y-Circle1.getRadius());
        }

        sf::Event event;
        while (Game.pollEvent(event))
        {
            if (event.type == sf::Event::Closed)
                Game.close();
            if (event.type == sf::Event::MouseWheelMoved)
            {
                if(event.mouseWheel.delta>0) Circle1.setRadius(Circle1.getRadius()+5);
                else Circle1.setRadius(Circle1.getRadius()-5);
            }
        }

        Game.clear();
        Game.draw(Circle1);
        Game.draw(Circle2);
        Game.display();
    }

    return 0;
}