Построение при помощи циркуля и линейки, только… без циркуля +32


AliExpress RU&CIS

Все мы знакомы из школьной программы с построениями при помощи циркуля и линейки. А что будет, если вдруг циркуль затеряется? Можно ли при помощи одной линейки строить ещё что-то нетривиальное? Предлагаю вашему вниманию задачу, решение которой принесло мне немало приятных часов. Задача со звёздочкой, поэтому не расстраивайтесь, если сходу решение не найдёте. Хотя один мой знакомый справился за пять минут, думаю, что это скорее исключение из правил.

Итак, на плоскости есть отрезок, который мы бы хотели продолжить. Казалось бы, выбрать две точки на отрезке, приложить линейку и прочертить прямую. Но вот незадача: как раз на пути этой прямой посажено жирное пятно кетчупа, а мы линейку пачкать не хотим. Нужно продолжить изначальную прямую за пятном, не прикасаясь к нему линейкой.



Напоминаю, циркуля нет, остаётся только неградуированная линейка, с помощью которой можно только проводить прямую через выбранные две точки, больше ничего. Это настоящая задача без подколок. Складывать листочки, использовать вторую сторону линейки для откладывания параллельных линий, а также хитрить другими подобными способами не требуется.



Update: Поскольку в комментариях задачу расщёлкали как орех, публикую два моих решения. Подглядывать в ответы, не попытавшись решить задачу самостоятельно, неспортивно :)

Решение #1
Отвлечёмся для начала от кетчупа, и попробуем нарисовать просто тетраэдр с основанием ABC и вершиной S. А затем проведём плоскость, порождённую треугольником A'B'C', пересекающую рёбра тетраэдра:



Прямые AB и A'B' пересекаются в точке P1, поскольку лежат в одной и той же плоскости (грань тетраэдра ABS). Аналогично P2 — точка пересечения прямых BC и B'C', и P3 — пересечение прямых AC и A'C'.

При этом P1, P2 и P3 лежат на одной прямой, поскольку принадлежат одновременно плоскости ABC и плоскости A'B'C', а пересечение двух плоскостей — это прямая.

То есть, произвольно взяв две точки P1 и P2 на нашем отрезке, мы можем построить P3, лежащую на той же прямой, но с другой стороны пятна. Повторив построение ещё раз, получим вторую точку, и задача решена. На всякий случай, это применение теоремы Дезарга



Решение #2
Лично я про проективную геометрию даже и не думал, и честно рисовал эти самые тетраэдры. Мой коллега (который решил за пять минут) предложил элегантное решение, основанное на теореме Паппа. Это решение должно быть очевидно всем, кто занимался компьютерной графикой.



Наша прямая — синяя, эллипс — пятно кетчупа. Основная идея — нарисовать проекцию 3д плоскости, замощённой одинаковыми квадратиками кафеля. Точки A и B — это так называемые точки схода, то есть, точки, в которых пересекаются параллельные (в 3д) прямые, образующие границы кафельных плиток.

1. Проведём две произвольных фиолетовых прямых таким образом, чтобы точка их пересечения лежала на нашей синей прямой.

2. Выберем произвольную точку A на нашей синей прямой, и произвольно же проведём две голубых прямых.

3. Пересечение фиолетовых и голубых прямых даст четыре точки P, Q, R и S, которые являются углами главной кафельной плитки, от которой мы и будем плясать.

4. Нарисуем красные прямые QP и RS, и обозначим точку их пересечения как B, это будет вторая точка схода.

5. Ну а дальше дело техники: произвольно чертим три розовые прямые, получим ещё две плитки кафеля. Ищем их центры, начертив два жёлтых креста, и дело сделано.

Я даже анимацию нарисовал :)





Комментарии (81):

  1. rahmaevao
    /#23013134

    А линейка имеет ширину?

    • haqreu
      /#23013136

      Нет. Единственная разрешённая операция построения — чертить прямую через выбранные две точки. Всё как в школе, только циркуль тиснули.

      • git-merge
        /#23013260

        и измерять расстояние линейка не может? то есть отрезок равный данному не отмерить?

        • haqreu
          /#23013274

          Нет, линейка неградуированная.

          • fndrey357
            /#23014500

            А как по теореме Паппа строить прямоугольники?

            • haqreu
              /#23014508

              в конце статьи второе решение говорит о проекции квадратов

  2. ultrinfaern
    /#23013148

    В линейке можно делать дырки — полностью соответствует циркулю. :)

    • haqreu
      /#23013164

      Нельзя, она из адамантия сделана!

  3. Yager
    /#23013170

    нарисовать по второй грани линейки параллельных линий до выхода за пределы пятна...

  4. ultrinfaern
    /#23013186

    На текущей линии нарисовать перпендикуляр и его использовать как основание равнобедренного треугольника, внутри которого и будет клякса. Нарисовать таких два один в другом и их вершины и будет продолжение линии.

    • haqreu
      /#23013188

      А как без циркуля нарисовать перпендикуляр?

      • sshikov
        /#23013250

        Треугольник 3*4*5. Правда, желательно две линейки...

        • haqreu
          /#23013256

          А как длину без циркуля откладывать?

          • sshikov
            /#23013292

            Берем любой предмет, считаем его длину за 1. Этого достаточно. Это не решение, я просто думал вслух

  5. BigDflz
    /#23013210 / +2

    лампа, тень от линейки

    • haqreu
      /#23013226 / +1

      Говорю же, не надо хитрить. Можно запустить GeoGebra и нарисовать безо всякой лампы.

  6. GAJIbl4
    /#23013220 / -1

    Взять книгу, положить на неё линейку, совместить с отрезком и продолжить линию. Линейка будет над пятном.

    • haqreu
      /#23013222

      А вы попробуйте провести прямую линию с линейкой, висящей на высоте, это очень непросто :)
      Нет.

  7. Barabek
    /#23013244 / +1

    Отмерять отрезки можно? (оставляя отметины на линейке)

    • haqreu
      /#23013254

      Нет, это уже циркуль получается

      • sshikov
        /#23013302

        Ну если мы можем сделать циркуль операциями с линейкой - это тоже решение. Хотя возможно и не считающееся разрешенным. Ну или нанести шкалу.

        • haqreu
          /#23013304

          Это не нужно, есть нормальное решение.

          • sshikov
            /#23013400

            Когда речь о задачах для ума, "не нужно" выглядит лишним) нельзя по правилам еще туда сюда. Наличие единичного отрезка выглядит запрещенным приемом, я согласен

            • haqreu
              /#23013404

              «Не нужно» означает, что подобные хитрости портят элегантность решения, которое можно сделать честно.

              • sshikov
                /#23016842

                Вы исходите из неочевидного предположения, что есть ровно одно элегантное решение, оно же единственно правильное (хотя к этой задаче кажется уже дали два единственно правильных :). Я же говорю о том, что подобные задачи — это гимнастика для разума. И если в итоге мы изобретаем что-то новое для себя — это уже достижение. Даже если исходную задачу оно не решает.

                • haqreu
                  /#23016986

                  С чего вы взяли, что я исхожу из такого предположения? Есть решения элегантные (их много) и неэлегантные (их тоже много).

                  • Alexandroppolus
                    /#23017018

                    неэлегантные

                    По меткому выражению одного из модераторов braingames, — "проявление смекалки в задачах на логику" )

                  • ksr123
                    /#23030544

                    Потому что в каждом комментарии пишете "так нельзя". Слишком много ограничений.

  8. creat0r
    /#23013284

    Исходя из этого как-то так, выбрав две произвольные точки с разных сторон от существующей прямой и пятна?

    image

    • git-merge
      /#23013298 / +1

      а перпендикуляры как строить без циркуля?

      • creat0r
        /#23013310

        а где здесь перпендикуляры?

        • git-merge
          /#23013328

          а ну я понял: проекции сверху пропорциональны и снизу
          и две проекции дают точку на той же рямой


          похоже на правду


          я думал подобные треугольники доказывать надо

      • keydon2
        /#23013324

        Все линейки которые я видел имели как миниум одну перпендикулярную сторону. По ней откладываем точку и продолжаем пендикуляр уже длинной стороной (если длины не хватает). Если линейка скорее похожа на кривой транспортир, то не прокатит.

        • git-merge
          /#23013336

          считайте что в роли линейки у Вас нитка, которую можно натянуть между двумя точками

          • developerxyz
            /#23013340

            Такой абстракцией нельзя продолжить отрезок за его концы

            • creat0r
              /#23013342

              зато всегда можно выбрать две произвольные разные точки на этом отрезке.

    • haqreu
      /#23013314

      Спрячьте под кат, пока редактировать можно. Я должен подумать, но выглядит неплохо.

    • haqreu
      /#23013384 / +1

      Да. Ваше решение — вариант применения теоремы Паппа.

      • haqreu
        /#23013444

        Я попозже дам пару решений, которые мне кажутся более наглядными, даже если могут потребовать больше линий, не считал.

        • Alexandroppolus
          /#23013460

          Как я понимаю, эти решения не будут сильно отличаться? Тут ничего принципиально иного не придумать, на мой взгляд. Так или иначе, некая конструкция из треугольников "в обход" пятна.

          • haqreu
            /#23013490

            В целом да, любое решение будет опираться на проективную геометрию, то есть, либо на теорему Паппа, либо на теорему Дезарга, либо на их варианты. Но смысл в том, что к решению можно прийти, даже не зная таких слов.

          • haqreu
            /#23013814

            не обязательно треугольники, это могут быть четырёхугольники :)
            см. апдейт

  9. Pavel_The_Best
    /#23013356

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

    • haqreu
      /#23013374 / +2

      Ой. А можете показать, как разделить отрезок пополам при помощи только одной линейки? Да, собственно, и касательную к окружности я не понимаю, как можно провести без циркуля.

      • Pavel_The_Best
        /#23013426

        Я извиняюсь, я действительно ошибся, теорема говорит про построения одним циркулем.
        Однако, разделить отрезок на две части одной линейкой можно, если, например, проведены две параллельные прямые.
        Насчёт построения касательной:
        youtu.be/8v0OYSowjok

        • haqreu
          /#23013434

          О, симпатично про касательную, спасибо.

  10. sibirier
    /#23013476

    можно закрыть пятно какой-то бумажкой и рисовать линию поверх этой бумажки. линейка не испачкана, линия есть, дополнительных построений не потребовалось)
    </joke>

    • haqreu
      /#23013494

      Пятно безобразно расплывётся ещё больше :(

  11. wowka999
    /#23013496 / +1

    Если я не ошибаюсь, можно попытаться воспользоваться теоремой Дезарга

    Потенциальное решение

    Будем строить два треугольника из теоремы. Концы отрезка возьмём за одну из пар вершин. Строим прямую, на которой будут пересекаться пары сторон треугольников. Отмечаем три точки на этой прямой, делаем это произвольно. Дальше строим стороны треугольников, проходящие через концы отрезка (по условию теоремы они должны пересекаться на только что построенной прямой с тремя выбранными точками). А вот третью пару сторон нужно строить так, чтобы прямые, их соединяющие, проходили мимо пятна. Поэтому на произвольность выбора трёх точек пересечения пар сторон накладывается ограничение - мы должны иметь возможность построить третьи стороны шире пятна. Это делать нужно «на глаз», так что это скользкий момент, не уверен, что здесь все честно. В общем, остаётся построить третью пару сторон, чтобы точка пересечения прямых, соединяющих концы этих сторон оказалась «по ту сторону пятна». Так мы построим одну точку с искомой прямой, немного «пошевелив» одну сторону из третьей пары, получим вторую точку.

  12. Krasnoarmeec
    /#23013524 / +2

    Это решение?

    Выбираем произвольные точки A и B, а так же три произвольные точки на исходном отрезке. Строим "проекции" точек A и B: A', A'', A''' и B', B'', B'''. Соединяем их попарно и точки пересечения будут искомыми концами отрезков.
    image

    • haqreu
      /#23013542

      Да, теорема Паппа в чистом виде.

  13. ciubotaru
    /#23013580

    В другой теме я нагло похвастался, что решил эту задачу, поэтому выкладываю своё решение.

    image

    Красная линия это то, что дано. Синяя — то, что построено. Для построения понадобилось две точки на исходном отрезке и две вне него. Ну и линейка.

    P.S.: Да, я уже понял, что перемудрил и что можно было решить проще.

    • Mingun
      /#23013592

      А по-моему, так самое наглядное решение

    • haqreu
      /#23013630

      Смотрите апдейт. В конце статьи я привёл два, как мне кажется, интуитивных решения.

      • ciubotaru
        /#23013666

        Я недопонял ваше второе решение. Если голубые линии проведены «от балды», то нет причин думать, что первоначальная (зелёная сплошная) линия должна проходить через центры квадратиков кафеля. И соответственно, нет причин думать, что зелёная прерывистая это продолжение зелёной сплошной.

        Конечно, можно сперва нарисовать от балды одну голубую и одну розовую линии, указать от балды же центр первого квадратика кафеля и потом с помощью золотого креста дорисовать вторую голубую, и лишь после этого переходить на другую сторону кляксы, но это уже не так интуитивно.

        • haqreu
          /#23013750

          А это потому что я слегка фигню спорол. Обновил текст.

        • haqreu
          /#23015156 / +1

          Все зелёные прямые выбираются произвольно

          • agat000
            /#23015816

            А как вы сделаете первые две прямые симетричными относительно исходной?

            • haqreu
              /#23015844 / +1

              Там симметрия не нужна

          • ciubotaru
            /#23016034 / +1

            Всё зелёные прямые выбираются произвольно

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

  14. TiesP
    /#23013658

    Продолжать чертить линию в сторону от пятна, пока она не упрется в пятно с другой стороны

    • haqreu
      /#23013776

      Земля имеет форму чемодана?

      • TiesP
        /#23013860

        В первом приближении форму шара. Но поскольку диаметр Земли намного больше длины линейки, то можно линию вокруг земли аппроксимировать короткими отрезками.

        • agat000
          /#23015812

          Накопление погрешности при каждой итерации приведет вас на Северный Полюс.

  15. Razoomnick
    /#23013828

    Пока думал над задачей, возник такой вопрос: если подойти максимально формально, то есть, если единственная разрешённая операция построения — чертить прямую через выбранные две точки, то можно ли вообще гарантированно построить прямую, не проходящую через пятно?

    То есть, проблема в следующем: выбрали одну точку, выбрали другую точку, пробуем провести прямую - и не можем, потому что она пересекает пятно. И так постоянно. По идее, при таком наборе разрешенных операций нет вариантов "выберем точку поближе" или "выберем точку в другой стороне".

    • haqreu
      /#23013866

      Я не понял вопроса :(

      • Sergey_Kovalenko
        /#23013962

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

        • haqreu
          /#23013972

          Ой. Надеюсь, это пятно не будет на нас нападать :)

  16. Sergey_Kovalenko
    /#23013844

    Вот вам еще головоломка.

    1.Поставьте на плоскости 4 (или более) точек общего положения. Назовем их базисными.

    2.Соедините базисные точки всевозможными прямыми.

    3. Если пересечения прямых из пункта 2 — это какие-то базисные точки, то множество пункта 1 назовем «проекивносовершенным». Однако, вообще говоря, появятся новые точки. Примем их за новый базис и проделаем операции пункта 2 и 3.

    4. Приведите пример, когда цикл построения (количество итераций) вообще говоря не прекратится ни на каком шаге и тем самым будет содержать счетное число шагов. Проверьте, что объединение точечных базисов всех шагов — это проективносовершенное множество (не важно, конечно итераций цикла или счетнобесконечно). Постарайтесь найти простое алгебраическое описание этого множества.

  17. agat000
    /#23014342

    Проще простого. Но неточно. Смотрим вдоль линии, за пятном кладем линейку и выравниваем на глаз. ± 1 градус точности.

    • haqreu
      /#23014352

      А как вы погрешность определили? :)

      • agat000
        /#23015806

        Примерно. ± 1 процент погрешности :)

  18. masai
    /#23015398

    Решения лучше сразу в виде ссылок на GeoGebra публиковать, чтобы можно было подвигать точки и лучше понять, как эти решения работают.


    Вот, например, моё решение: https://www.geogebra.org/calculator/tjmfmrkx