• Как найти длину перпендикуляра с точки на отрезок?

    Mrrl
    @Mrrl
    Mrrl: А, увидел. Надо читать не только текст вопроса, но и заголовок. Тогда остается только последний вопрос - каким предполагается ответ, если точка на отрезок не попала?
  • Как найти длину перпендикуляра с точки на отрезок?

    Mrrl
    @Mrrl
    cf - отношение проекции вектора BA на BC к самому вектору BC. То есть, если X - проекция точки A на прямую BC, то cf (до коррекции) даёт BX=cf*BC. Если cf<0, то X оказалась перед B, и в этом случае точка отрезка, ближайшая к A это B. А если cf>1, то X оказалась за C, и точка, ближайшая к A - это C.
    По формуле высоты нельзя, потому что она не показывает, опустилась высота на отрезок или за его пределами. А вообще "найти перпендикуляр" звучит не очень понятно. Что надо-то? Длину перпендикуляра? Его основание? Его уравнение? И каким же должен быть результат, если основание высоты оказалось вне треугольника?
  • Как найти длину перпендикуляра с точки на отрезок?

    Mrrl
    @Mrrl
    Переменная типа double. В неё кладётся скалярное произведение двух векторов (BC и BA).
  • Как реализовать выполнение очереди комманд в дочернем потоке?

    Mrrl
    @Mrrl
    Я бы его усыплял с помощью какого-нибудь AutoResetEvent.WaitOne(). Цикл смотрит, что очередь пуста, устанавливает переменную "я сплю" и засыпает - ждёт события. AddCommand добавляет команду в очередь, и если видит, что цикл спит - сбрасывает переменную "я сплю" и запускает событие.
    Насчёт "предусматривать наличие такого вот бага" - вас же не смущает, что файл по окончании записи надо закрывать? Здесь то же самое - мы закрываем поток команд. Флаг устанавливается внутри, командой Close. Она тоже при необходимости будит цикл.
  • 3D триангуляция?

    Mrrl
    @Mrrl
    Не знаю. Я в таких вопросах библиотекам не доверяю - что их авторы могут понимать? Самому как-то надёжнее.
  • 3D триангуляция?

    Mrrl
    @Mrrl
    KillAstronauts: В таком виде задача неразрешима. Представьте себе, что вам дали каркас перспективной проекции гиперкуба (как его обычно рисуют - один куб внутри другого, вершины внешнего и внутреннего соединены рёбрами). Что это за фигура? Вы можете взять, например, кольцо из четырёх усечённых пирамид, идущих вокруг вертикальной оси внутреннего куба. Все 32 ребра окажутся использованными. Но такое же кольцо можно провести вокруг любой из горизонтальных осей - получится три разных многогранника. Какой из них правильный?
    Задача построения многогранника по рёберному каркасу - совершенно отдельная задача, никак не связанная с разбиением на тетраэдры (кроме того, что выход одной задачи является входом другой). Надо над ней думать. Вам придётся найти все плоские циклы на графе рёбер, убедиться, что грань, построенную на этом цикле, не пересекают другие рёбра, и как-то отловить случай "грани с дыркой", когда есть два квадрата - один внутри другого - лежащие в одной плоскости, но вершины которых не соединены рёбрами друг с другом. Потом построить мультиграф, в котором вершинами будут заданные рёбра, а "рёбрами" - найденные потенциальные грани. И найти в нём все подграфы, в которых каждая вершина принадлежит ровно двум "рёбрам" (эквивалентная формулировка: из набора множеств выбрать поднаборы, образующие покрытия, в которых каждый элемент принадлежит ровно двум множествам). После этого каждый набор проверить на геометрическую корректность - потому что по набору рёбер октаэдра алгоритм вполне может построить самопересекающуюся поверхность Штейнера. Наборы, которые дадут корректную поверхность - и есть ответ к этой задаче.
  • 3D триангуляция?

    Mrrl
    @Mrrl
    KillAstronauts: Несколько вопросов:
    1) нужна ли эффективность, или алгоритм, например, за N^4 годится?
    2) Топология фигуры может произвольной - и шар, и тор, и шар с полостями и т.д.?
    3) Как фигура задана?
  • 3D триангуляция?

    Mrrl
    @Mrrl
    Армянское Радио: Но чтобы узнать, насколько её надо измельчить, надо сначала понять, в каких случаях эти тетраэдры могут образоваться?
  • 3D триангуляция?

    Mrrl
    @Mrrl
    Армянское Радио: Проблема в том, что многие тетраэдры окажутся разрезанными границей модели, тем более, что сама модель невыпукла. Работает ли тетрангуляция для области с произвольной топологией и произвольной триангуляцией края?
  • Используются ли в программировании дифференциальное и интегральное исчисления?

    Mrrl
    @Mrrl
    tuccar: Они дают расширенное понимание того, "что такое состояние, и как работать, если кроме состояния ничего нет - ни истории, ни текущей исполняемой строки". Я их подобие использую обычно вручную в Word или Notepad - чтобы с помощью функции "замены" добиться нужного эффекта. А в реальных программах никаких близких аналогий не вижу. Но я мало работал с системами реального времени. Когда время на одну операцию ограничено и памяти немного, надо быстро разобраться, где ты, и выполнить нужное изменение... но это очень искусственный подход.
    Так что непосредственно использовать, скорее, негде. Возможно, другие укажут какие-нибудь применения, которых я не заметил.
  • Используются ли в программировании дифференциальное и интегральное исчисления?

    Mrrl
    @Mrrl
    tuccar: Если вопрос, изучать ли их до алгоритмов вообще, то мой ответ - да. Запрограммируйте хоть что-нибудь на машине Тьюринга, алгоритмах Маркова и брейнфаке (даже не обязательно проверять на реальном компьютере). И на каком-нибудь простеньком ассемблере (хоть из книжек Кнута, хоть DCPU-16). После этого можно смело переходить к настоящим языкам и алгоритмам, они мозг уже не испортят :)
  • Используются ли в программировании дифференциальное и интегральное исчисления?

    Mrrl
    @Mrrl
    tuccar: Я их не изучал. Услышал определение, запрограммировал пару алгоритмов. Для тренировки воображения приятная вещь. По слухам, из них вырос язык REFAL.
    А что за вопрос?
  • Как помочь человеку сформировать в себе мышление программиста?

    Mrrl
    @Mrrl
    vasIvas: Думаю, что 5 строк - ограничение для джедая... Такая же эзотерика, как и брейнфак. Если сможешь написать программу на этом принципе, получишь понимание, которое пригодится потом, уже в практическом программировании. Но я сам не пробовал.
  • Используются ли в программировании дифференциальное и интегральное исчисления?

    Mrrl
    @Mrrl
    tuccar: Независимо. Дискретная математика даст полезные понятия для некоторых структур данных (например, графы). Если в неё попадёт машина Тьюринга, это может дать интересную проекцию понимания алгоритмов. Которая, впрочем, для программирования не слишком нужна. Разве что для разминки мозгов, как и другие эзотерические языки. Конечные автоматы (если они вдруг тоже окажутся в дискретной математике) - очень полезная вещь (для архитектуры)... но если её изучить не сразу, это ни на что особо не повлияет. Алгоритмов и до неё достаточно много.
    Так что лучше начать алгоритмы, не обращая внимания на остальное. Если попадётся что непонятное - попытаться определить, из какой оно области, и отложить до времени изучения этой области.
  • Как помочь человеку сформировать в себе мышление программиста?

    Mrrl
    @Mrrl
    vasIvas: 50 давно не встречал. Последнее время чаще попадались 25 или 20. Но с год назад промелькнул пост, в котором упоминался принцип про 5 строк. Не помню только, на каком языке. Возможно, Ruby.
  • Как помочь человеку сформировать в себе мышление программиста?

    Mrrl
    @Mrrl
    globuzer: А как же идеи вроде "каждая функция не длиннее 5 операторов, и каждый класс умещается на экран"?
  • Как грамотно преобразовывать информацию из byte в int?

    Mrrl
    @Mrrl
    А не возникнет ли проблем, когда младший байт больше 127? Ведь lo тогда будет отрицательным (копирование char, если он знаковый, в int идёт с распространением знака), и результат будет на 256 меньше ожидаемого.
  • Как решить задачу про разрез(написать программу)?

    Mrrl
    @Mrrl
    Да, задача сводится к такой: на квадрате нарисовано несколько отрезков, не имеющих общих внутренних точек. Отрезки могут иметь общие концы, конец отрезка может лежать на границе квадрата. Требуется перечислить связные области, на которые эти отрезки делят квадрат (для каждой области интересуют: площадь, общее число вершин, число вершин, лежащих на границе квадрата, в том числе вершин самого квадрата). Действительно, несложная задачка. Но число решивших будет равно нулю.
  • Как решить задачу про разрез(написать программу)?

    Mrrl
    @Mrrl
    Valentin: Да. Если вы считаете, что свечи имеют диаметр, но резать можно как угодно, то это ещё одна задача. И тоже непростая.