Блог пользователя Mr_Napaleon.

Автор Mr_Napaleon., история, 11 лет назад, По-русски

Доброе утро!

Пожалуйста объясните задачу Петя и снегоуборочная машина.

Заранее спасибо!!

  • Проголосовать: нравится
  • 0
  • Проголосовать: не нравится

»
11 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

Находишь самую дальнюю точку(она в вершине) Находишь самую ближнюю точку(либо в вершине, либо пересечение высоты со стороной) Из площади с большим радиусом вычитаешь меньший Высоту нужно пытаться применить только с остроугольными треугольниками, проверить можно по теореме пифагора

  • »
    »
    11 лет назад, скрыть # ^ |
     
    Проголосовать: нравится 0 Проголосовать: не нравится

    Можно по подробнее

    • »
      »
      »
      11 лет назад, скрыть # ^ |
       
      Проголосовать: нравится 0 Проголосовать: не нравится

      Нам требуется найти радиусы двух окружностей, которые образует многоугольник при движении. Радиус большей равен максимальному расстоянию от центра до вершины многоугольника. Радиус меньшей равен min( расстоянию до ближайшей точки, расстоянию до отрезка образуемого двумя последовательными точками ). Ответ: площадь первого круга — площадь второго

      • »
        »
        »
        »
        11 лет назад, скрыть # ^ |
         
        Проголосовать: нравится 0 Проголосовать: не нравится

        а как найти " min( расстоянию до ближайшей точки, расстоянию до отрезка образуемого двумя последовательными точками)"

        • »
          »
          »
          »
          »
          11 лет назад, скрыть # ^ |
           
          Проголосовать: нравится 0 Проголосовать: не нравится

          Кратчайшее расстояние от точки до отрезка — это либо расстояние от точки до одного из концов отрезка, либо длина перпендикуляра к отрезку.

          Пусть O — точка, AB — отрезок. Посмотрим на углы OAB и OBA. Если хотя бы один из них тупой, то надо просто выбрать минимум из длин OA и OB. Чтобы проверить, что угол OAB тупой, надо найти скалярное произведение векторов OA и AB, если оно больше нуля, то угол тупой (почему больше нуля, а не меньше? скалярное произведение правильно показывает знак, только если векторы отложить из одной точки). И все аналогично для угла OBA.

          Если же оба угла острые, минимум достигается на перпендикуляре к отрезку. Строим линию ax+by+c=0, проходящую через точки A и B. Это делается так: a = By — Ay, b = Ax — Bx, c = -a*Ax — b*Ay. После этого расстояние от точки O до прямой вычисляется по формуле abs(a*Ox + b*Oy + c) / sqrt(a*a + b*b).

          • »
            »
            »
            »
            »
            »
            11 лет назад, скрыть # ^ |
             
            Проголосовать: нравится 0 Проголосовать: не нравится

            А почему a = By — Ay.

            • »
              »
              »
              »
              »
              »
              »
              11 лет назад, скрыть # ^ |
              ← Rev. 2  
              Проголосовать: нравится 0 Проголосовать: не нравится

              Можно и наоборот: a = Ay — By, b = Bx — Ax. Главное, чтоб в одном случае координата одной точки была с минусом, а в другом случае — другой точки.

              Эти формулы выводятся из уравнения линии, проходящей через две точки: (x — Ax) / (Bx — Ax) = (y — Ay) / (By — Ay). Но их проще запомнить, чем выводить каждый раз заново. А если переставить точки местами, как раз поменяются знаки у коэффициентов a и b.