| Типы программирования, программирование, языки программирования, книги программирование | На сайте представлена информация про программирование в Интернете и работу |
|
решите задачу Графы в Паскале задача на Паскале Проверка своих сил, Задача 2 Помогите с програмой. Помогите по Паскалю...Плз, СРОЧНО arctg, "встроенная функция" Шифрование, как расшифровать EComponentError Цвет ЛЮДИ ПОМОГИТЕ С ЗАДАЧЕЙ!!!, задача на паскале Решение квадратного уравнения Помогите решить задачи, Массив Паскаль из десятичной в двоичную Cетевое программирование на Pascal Пацкаль работа с сетью программирование на paskal, решить задачу FAQ по Pascal, где взять? Паскаль, нахождение остатка от деления Как Вы относитесь к курящим девушкам? Определение изменений. CreateOleObject, Ошибка... D2005 Architect Edition (не триал), Глюк с файлом модуля под Win32. Компоненты для Telnet? Как сделать так чтоб файл в нет отправить??? Установка Delphi 8.0?, Почему не устанавливается Delphi 8.0? отладка в Delphi.Net if (Delphi .net) then Canvas := false ???, В .net на форме уже не порисуешь? Разве...., Помогите.... Delphi - 8. Первые впечатления., Шаг вперёд - 2 шага назад MDA-приложения на основе ECO, Кто-нить юзал уже? По базам данных, Database Desktop Переносимость VCL.NET приложений Delphi 2005 проблема с компилятором .Net in Delphi7 Работа с IP-адресом, Как его сделать невидимым? нужен материал, AdoNet, Dot.net кидаю на форму кнопку(например)-ошибка Как Вы относитесь к курящим девушкам? Kylix не хочет устанавливаться (Ошибка - 10), Что делать? ./Project1: relocation error: ./Project1: undefine, undefined symbol: initPAnsiStrings Программа на Kylix не запускается без IDE, Что делать? Как окрасить меню в синий цвет? Ресурсы по Kylix CrossKylix, Kylix Crosscompiler for Delphi/Windows Удалено узнать параметры системы, Удалено узнать параметры системы Kylix зависает при компилировании Запуск внешних приложений, Запуск внешних приложений Kylix in FreeBSD, Возможно ли это? при запуске выдает undefined symbol: initPAnsiStri, Kylix 3 -- Mandrake 10.0 Power Pack + Kylix зависает при компилировании Выходит всем нравятся кривые шрифты в Kylix?, :) kylix под root'ом, объясните Таблица Kylix3 Open, жуткие тормоза бр-р-р :) Kylix3 Open, просит регистрации Libqt для Kylix с поддержкой сглаживания, кому мож надо :) Прочитать Symbolic link Kylix и Mandrake, Установка проблема со шрифтами Сколько стоит лицензионный Kylix? Проверка CrossKylix, Рабтает ли бинарник? Графики на Kylix, Замена TChart Про Куликс и его совместимость :) win api desktop backspace в консолном приложении Что использовать вместо NMURL в Kylix C++? Kylix ХОЧУ!!!!!!!!!!!!, Проблемы с установкой Kylix. Запуск bin'ov без IDE Как в Kylix воспроизвести AVI? |
Платные хостинги Раскрутка сайта Книги по программированию программирование на paskal, решить задачу
- Ну например так, хоть эт внатуре и не программирование сутьПервое,Для того что бы начало координат преналжело треугольнику необхадимо что бы одна или несколколько из его сторон пересекали ось обцисс и ординат хотябы один раз, соответсвенно для этого те надо проверять выполняица это условие или нет.Второе,Для проверки этого условия те нужно проверить x1*x2>0 еесли истинно то между этими вершинами обцисс не пересекает, для ординат анологично y1*y2>0.третье, Ну и потом перебираешь все варианты (их три кстати) до тех пор пока не либо они не конаться либо не выполница кождое из условий хотябы по одному разу.... - Garabar Господи, зачем так сложно. Если начало координат лежит внутри треугольника, то начало координат и одна вершина лежат по одну сторону от прямой, определяемой остальными вершинами. Проверяется это элементарно - если в пределах от -пи до +пи синусы углов 120 и 123 имеют одинаковый знак для любого порядка нумерования точек, то внутри. По координатам посчитать синус - дело плевое... - Интересно рассчет синусов тратит больше системных ресурсов чем произведение....)))) - 1) не paskal, a Pascal2) Код if ((X1 * X2 <0) or (x2 * x3 < 0) or (X1 * x3 < 0)) and ((Y1*Y2 < 0) or (Y2 * Y3 < 0) or (Y3 * Y1 < 0)) then writeln('Да') else writeln('Нет');highlightSyntax('delphimMmFlO','delphi');Может и ошибаюсь, но вроде так... - ОШИБАЮСЬ!!!Лохонулся я вчера: после трех пар математичесого анализа и одной пары линейной алгебры мозги не хотели работатьВот примерчик:Код var x,y:real; x1,y1,x2,y2,x3,y3:real;begin readln(x1,y1,x2,y2,x3,y3); x:=0; y:=0; if ((y < (y1 - y3)*(x - x3)/(x1-x3)+y3) and (y < (y2 - y1)*(x - x1)/(x2-x1)+y1) and (y >(y3 - y2)*(x - x2)/(x3-x2)+y2)) or ((y < (y2 - y1)*(x - x1)/(x2-x1)+y1) and (y < (y3 - y2)*(x - x2)/(x3-x2)+y2) and (y >(y1 - y3)*(x - x3)/(x1-x3)+y3)) or ((y < (y3 - y2)*(x - x2)/(x3-x2)+y2) and (y < (y1 - y3)*(x - x3)/(x1-x3)+y3) and (y >(y2 - y1)*(x - x1)/(x2-x1)+y1)) or ((y > (y1 - y3)*(x - x3)/(x1-x3)+y3) and (y < (y2 - y1)*(x - x1)/(x2-x1)+y1) and (y >(y3 - y2)*(x - x2)/(x3-x2)+y2)) or ((y > (y2 - y1)*(x - x1)/(x2-x1)+y1) and (y < (y3 - y2)*(x - x2)/(x3-x2)+y2) and (y >(y1 - y3)*(x - x3)/(x1-x3)+y3)) or ((y > (y3 - y2)*(x - x2)/(x3-x2)+y2) and (y < (y1 - y3)*(x - x3)/(x1-x3)+y3) and (y >(y2 - y1)*(x - x1)/(x2-x1)+y1)) or ((y < (y1 - y3)*(x - x3)/(x1-x3)+y3) and (y > (y2 - y1)*(x - x1)/(x2-x1)+y1) and (y >(y3 - y2)*(x - x2)/(x3-x2)+y2)) or ((y < (y2 - y1)*(x - x1)/(x2-x1)+y1) and (y > (y3 - y2)*(x - x2)/(x3-x2)+y2) and (y >(y1 - y3)*(x - x3)/(x1-x3)+y3)) or ((y < (y3 - y2)*(x - x2)/(x3-x2)+y2) and (y > (y1 - y3)*(x - x3)/(x1-x3)+y3) and (y >(y2 - y1)*(x - x1)/(x2-x1)+y1)) or ((y > (y1 - y3)*(x - x3)/(x1-x3)+y3) and (y > (y2 - y1)*(x - x1)/(x2-x1)+y1) and (y <(y3 - y2)*(x - x2)/(x3-x2)+y2)) or ((y > (y2 - y1)*(x - x1)/(x2-x1)+y1) and (y > (y3 - y2)*(x - x2)/(x3-x2)+y2) and (y <(y1 - y3)*(x - x3)/(x1-x3)+y3)) or ((y > (y3 - y2)*(x - x2)/(x3-x2)+y2) and (y > (y1 - y3)*(x - x3)/(x1-x3)+y3) and (y <(y2 - y1)*(x - x1)/(x2-x1)+y1)) then writeln('Да') else writeln('Нет'); readln;end.highlightSyntax('delphiN2M2ZD','delphi'); - Доработанный вариант:Код if ((y < (y1 - y2)*(x - x2)/(x1 - x2) + y2) and (y < (y3 - y1)*(x - x1)/(x3 - x1) + y1) and (y > (y2 - y3)*(x - x3)/(x2 - x3) + y3) and (x > (y - y2)*(x1 - x2)/(y1 - y2) + x2) and (x < (y - y1)*(x3 - x1)/(y3 - y1) + x1) and (x > (y - y3)*(x2 - x3)/(y2 - y3) + x3)) or ((y < (y2 - y3)*(x - x3)/(x2 - x3) + y3) and (y < (y1 - y2)*(x - x2)/(x1 - x2) + y2) and (y > (y3 - y1)*(x - x1)/(x3 - x1) + y1) and (x > (y - y3)*(x2 - x3)/(y2 - y3) + x3) and (x < (y - y2)*(x1 - x2)/(y1 - y2) + x2) and (x > (y - y1)*(x3 - x1)/(y3 - y1) + x1)) or ((y < (y3 - y1)*(x - x1)/(x3 - x1) + y1) and (y < (y2 - y3)*(x - x3)/(x2 - x3) + y3) and (y > (y1 - y2)*(x - x2)/(x1 - x2) + y2) and (x > (y - y1)*(x3 - x1)/(y3 - y1) + x1) and (x < (y - y3)*(x2 - x3)/(y2 - y3) + x3) and (x > (y - y2)*(x1 - x2)/(y1 - y2) + x2)) or ((y < (y1 - y2)*(x - x2)/(x1 - x2) + y2) and (y > (y3 - y1)*(x - x1)/(x3 - x1) + y1) and (y > (y2 - y3)*(x - x3)/(x2 - x3) + y3) and (x > (y - y2)*(x1 - x2)/(y1 - y2) + x2) and (x < (y - y1)*(x3 - x1)/(y3 - y1) + x1) and (x > (y - y3)*(x2 - x3)/(y2 - y3) + x3)) or ((y < (y2 - y3)*(x - x3)/(x2 - x3) + y3) and (y > (y1 - y2)*(x - x2)/(x1 - x2) + y2) and (y > (y3 - y1)*(x - x1)/(x3 - x1) + y1) and (x > (y - y3)*(x2 - x3)/(y2 - y3) + x3) and (x < (y - y2)*(x1 - x2)/(y1 - y2) + x2) and (x > (y - y1)*(x3 - x1)/(y3 - y1) + x1)) or ((y < (y3 - y1)*(x - x1)/(x3 - x1) + y1) and (y > (y2 - y3)*(x - x3)/(x2 - x3) + y3) and (y > (y1 - y2)*(x - x2)/(x1 - x2) + y2) and (x > (y - y1)*(x3 - x1)/(y3 - y1) + x1) and (x < (y - y3)*(x2 - x3)/(y2 - y3) + x3) and (x > (y - y2)*(x1 - x2)/(y1 - y2) + x2)) or ((y < (y1 - y2)*(x - x2)/(x1 - x2) + y2) and (y < (y3 - y1)*(x - x1)/(x3 - x1) + y1) and (y > (y2 - y3)*(x - x3)/(x2 - x3) + y3) and (x > (y - y2)*(x1 - x2)/(y1 - y2) + x2) and (x < (y - y1)*(x3 - x1)/(y3 - y1) + x1) and (x < (y - y3)*(x2 - x3)/(y2 - y3) + x3)) or ((y < (y2 - y3)*(x - x3)/(x2 - x3) + y3) and (y < (y1 - y2)*(x - x2)/(x1 - x2) + y2) and (y > (y3 - y1)*(x - x1)/(x3 - x1) + y1) and (x > (y - y3)*(x2 - x3)/(y2 - y3) + x3) and (x < (y - y2)*(x1 - x2)/(y1 - y2) + x2) and (x < (y - y1)*(x3 - x1)/(y3 - y1) + x1)) or ((y < (y3 - y1)*(x - x1)/(x3 - x1) + y1) and (y < (y2 - y3)*(x - x3)/(x2 - x3) + y3) and (y > (y1 - y2)*(x - x2)/(x1 - x2) + y2) and (x > (y - y1)*(x3 - x1)/(y3 - y1) + x1) and (x < (y - y3)*(x2 - x3)/(y2 - y3) + x3) and (x < (y - y2)*(x1 - x2)/(y1 - y2) + x2)){Можно ещё покрутить треугольник в плоскости, но нет времени...} then writeln('Yes') else writeln('No');highlightSyntax('delphiY2M2E=','delphi'); - во-первых, сисинус считается исключительно вычитаниями и делениями. Во-вторых, достаточно получить его знак. - AkinaКод во-первых, сисинус считается исключительно вычитаниями и делениями. Во-вторых, достаточно получить его знак. highlightSyntax('delphiMjlmMW','delphi');Хе) ну что бы получить его знак его нужно пасчитать....А во вторых что бы пасчитать синус нужно я думаю больше раза поделить(или умножить)))) - Pakshin A. S., как этим пользоваться ? У меня все время "Да"... + Иногда вылетает Floating Point - ошибка... Вот мой вариант:Если начало координат принадлежит треугольнику (внутри треугольника, или на сторонах), то треугольник должен пересекать обе оси Ox и Oy с двух сторон (на положительной и отрицательной частях)...Код function ChkTreug (x1, y1, x2, y2, x3, y3 : real) : boolean;var Ints : array [0..3] of boolean; procedure Intersect (x1, y1, x2, y2 : real); begin if (x2*x1 < 0) then Ints[0 + Byte((y1 - x1/(x2-x1)*(y2-y1)) > 0)] := True; if (y2*y1 < 0) then Ints[2 + Byte((x1 - y1/(y2-y1)*(x2-x1)) > 0)] := True; end;begin FillChar (Ints, SizeOf(Ints), 0); Intersect (x1, y1, x2, y2); Intersect (x2, y2, x3, y3); Intersect (x3, y3, x1, y1); Result := Ints[0] and Ints[1] and Ints[2] and Ints[3];end;highlightSyntax('delphiDA4Yjk','delphi'); - Я пытаюсь рассмотреть позицию точки по отношению к прямым через уравнение прямой, проходящей через две точкиy-y1=(y2-y1)(x-x1)/(x2-x1)...Да видимо мысль не туда пошла... - В RXLibrary есть функция (сечас не помню точно как называется), вот онавозвращает True, если точка лежит внутри многоугольника. - ДЫМ , Да? А я помнится сам её корябал... Заманался, честно говоря. - небольшое уточнение: необходимо проверять не для одной из вершин, а для всех (хотя, может, я неправильно прочитал, и именно это и имелось в виду)небольшая модификация:1. точка лежит внутри треугольника тогда и только тогда, когда при обходе его она всегда лежит с одной стороны (это верно вообще для всех выпуклых полигонов)2. для того, чтобы определить, с какой стороны лежит точка от прямой, достаточно определить знак угла (если считать его между -180 и +180) между направляющим вектором прямой и вектором от одной из точек прямой к исследуемой точке3. для определения знака угла в интервале (-180, +180) достаточно определить знак синуса4. как было справедливо замечено для подсчета синуса между двумя векторами на плоскости достаточно нескольких арифметических операций: просто добавляем к каждому вектору третью нулевую координату z и считаем их векторное произведениеи так алгоритм такой:Код result:=(ABxAO,BCxBO,CAxCO имеют одинаковый знак);highlightSyntax('delphi1MzRmZ','delphi');под обозначением ABxAO понимается следующее:a=B1-A1b=B2-A2c=O1-A1d=O2-A2ABxAO=a*d-b*c |