• Как попарно соединить вершины многоугольника, что бы линии не пересекались?

    aush
    @aush
    Можно получить список вершин по формулам и по очереди их соеденить. В этом случае линии пересекаться гарантировано не будут.

    IEnumerable<Point> GetPoints(int points) // points - количество вершин
    {
        return Enumerable.Range(0, points)
            .Select(i => 2 * i * Math.PI / points)
            .Select(arg => new Point
            {
                X = Math.Cos(arg), 
                Y = Math.Sin(arg)
            });
    }
    
    struct Point
    {
        public double X;
        public double Y;
    }


    UPD: стало интересно, решил немного порисовать. Получаются примерно такие картинки ppppp.png

    По вашему комменту я так и не понял, что именно вы хотите сделать, но если интересно, можете глянуть код: архив с проектом (код лепил по мере появления идей, поэтому имеется некоторая каша; если что будет непонятно - спрашивайте).
    Ответ написан
    Комментировать
  • Спортивное программирование, с чего начать?

    @Perzh
    У нас в универе был кружок по олимпиадному программированию. Было весело, хоть я и не соответствовал уровню. Наверно и вам стоит попробовать =)
    Ответ написан
    Комментировать