Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 22.03.2008, 06:41
Romer Romer вне форума
Прохожий
 
Регистрация: 22.03.2008
Сообщения: 6
Репутация: 10
По умолчанию Помогите если не сложно

Люди, если не сложно помогите с написанием исходника следующей задачи...

Задаваемое количество точек К (3…30) генерируется случайным образом на координатной плоскости 5*N x 5*M. Найти три точки: самую высшую, самую левую и правую точки. Построить треугольники и подсчитать количество точек, находящихся внутри треугольника и снаружи.
Заранее всех благодарю
Ответить с цитированием
  #2  
Старый 22.03.2008, 12:28
Rosenkrantz Rosenkrantz вне форума
Активный
 
Регистрация: 04.12.2007
Адрес: Москва
Сообщения: 234
Версия Delphi: Delphi 7
Репутация: 40
По умолчанию

Цитата:
Проверить, находится ли точка внутри треугольника, заданного своими вершинами, можно используя следующую формулу:
r = (y - y0) (x1 - x0) - (x - x0) (y1 - y0) , где x, y - координаты заданой точки, а x0, y0, x1, y1 - координаты двух соседних вершин треугольника (например, A(x1,y1) и B (x2,y2) в Вашем примере). Если точка лежит внутри треугольника, r < 0 для всех сторон. Если хоть для одной стороны r < 0, точка лежит вне треугольника. Если r=0, точка лежит на стороне. В случае треугольника это довольно просто, но можно использовать и для любого полигона.
Отсюда: http://subscribe.ru/archive/comp.sof.../07103447.html
Ответить с цитированием
  #3  
Старый 23.03.2008, 16:14
Rosenkrantz Rosenkrantz вне форума
Активный
 
Регистрация: 04.12.2007
Адрес: Москва
Сообщения: 234
Версия Delphi: Delphi 7
Репутация: 40
По умолчанию

В общем, этот способ - фуфло. Дает ошибки примерно в 30-40% случаев.

Вот исходники программы для вашей задачи (D2007). Чтобы проверить, лежит ли точка внутри треугольника, я последовательно подсчитываю площади треугольников образуемых данной точкой и попарно взятыми вершинами треугольника. Если сумма этих площадей равна площади треугольника (с заданной погрешностью), то точка внутри треугольника, иначе - снаружи.
Вложения
Тип файла: zip Triangle.zip (9.4 Кбайт, 8 просмотров)
Ответить с цитированием
  #4  
Старый 02.04.2008, 09:18
Romer Romer вне форума
Прохожий
 
Регистрация: 22.03.2008
Сообщения: 6
Репутация: 10
По умолчанию

Цитата:
Сообщение от Rosenkrantz
В общем, этот способ - фуфло. Дает ошибки примерно в 30-40% случаев.

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


Помогите составить блок схему к программе расположенной выше( Triangle)
Ответить с цитированием
  #5  
Старый 02.04.2008, 10:50
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,906
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

Rosenkrantz, зря Вы так, прекрасный алгоритм... Я ошибок не выявил. Возможно Вам не удалась реализация.
Во вложении пример реализации.
Вложения
Тип файла: 7z points.7z (5.6 Кбайт, 12 просмотров)
Ответить с цитированием
  #6  
Старый 02.04.2008, 15:04
mustdie mustdie вне форума
Прохожий
 
Регистрация: 02.04.2008
Сообщения: 5
Репутация: 5
По умолчанию

не знаю я куда писать, столько тем...
подскажите ламаку, что надо сделать чтоб окно Form1 запускалась, но небыло никаких признаков того что запущена. разве что убить в диспетчере задач.
ставлю Visible false, а она висит перед глазами.
Ответить с цитированием
  #7  
Старый 02.04.2008, 15:46
Rosenkrantz Rosenkrantz вне форума
Активный
 
Регистрация: 04.12.2007
Адрес: Москва
Сообщения: 234
Версия Delphi: Delphi 7
Репутация: 40
По умолчанию

Цитата:
Сообщение от Aristarh Dark
RosenkrantzВозможно Вам не удалась реализация
Вполне возможно, конечно. Реализацию заберу в копилочку.
Ответить с цитированием
  #8  
Старый 02.04.2008, 15:52
Rosenkrantz Rosenkrantz вне форума
Активный
 
Регистрация: 04.12.2007
Адрес: Москва
Сообщения: 234
Версия Delphi: Delphi 7
Репутация: 40
По умолчанию

Цитата:
Сообщение от mustdie
не знаю я куда писать, столько тем...
подскажите ламаку, что надо сделать чтоб окно Form1 запускалась, но небыло никаких признаков того что запущена. разве что убить в диспетчере задач.
ставлю Visible false, а она висит перед глазами.
Код:
  Application.Minimize;
  Application.MainForm.Visible := False;
Только учтите, что:
  • В диспетчере задач процесс будет виден все равно
  • Если не предусмотреть способа восстановление задачи из невидимого состояния, то выйти вы из нее сможете только убив процесс в диспетчере задач.
Ответить с цитированием
  #9  
Старый 03.04.2008, 06:10
Rosenkrantz Rosenkrantz вне форума
Активный
 
Регистрация: 04.12.2007
Адрес: Москва
Сообщения: 234
Версия Delphi: Delphi 7
Репутация: 40
По умолчанию

Цитата:
Сообщение от Romer
Помогите составить блок схему к программе расположенной выше( Triangle)
Я, честно говоря, слабо представляю себе как можно составить блок-схему программы с объектами и событийным управлением. Разве что отдельных функций.
Ответить с цитированием
  #10  
Старый 03.04.2008, 07:31
Romer Romer вне форума
Прохожий
 
Регистрация: 22.03.2008
Сообщения: 6
Репутация: 10
По умолчанию

Цитата:
Сообщение от Rosenkrantz
Я, честно говоря, слабо представляю себе как можно составить блок-схему программы с объектами и событийным управлением. Разве что отдельных функций.

Да, именно отдельных функций)))
Ответить с цитированием
  #11  
Старый 03.04.2008, 10:37
Rosenkrantz Rosenkrantz вне форума
Активный
 
Регистрация: 04.12.2007
Адрес: Москва
Сообщения: 234
Версия Delphi: Delphi 7
Репутация: 40
По умолчанию

Ну давайте попробуем. А как чисто технически вы планируете это сделать? В смысле - каким инструментом пользоваться?
Ответить с цитированием
  #12  
Старый 03.04.2008, 11:56
Romer Romer вне форума
Прохожий
 
Регистрация: 22.03.2008
Сообщения: 6
Репутация: 10
По умолчанию

Цитата:
Сообщение от Rosenkrantz
Ну давайте попробуем. А как чисто технически вы планируете это сделать? В смысле - каким инструментом пользоваться?

Ну обычно я блок схемы делал графически в Visio)))
Ответить с цитированием
  #13  
Старый 03.04.2008, 12:00
Romer Romer вне форума
Прохожий
 
Регистрация: 22.03.2008
Сообщения: 6
Репутация: 10
По умолчанию

Цитата:
Сообщение от Rosenkrantz
Ну давайте попробуем. А как чисто технически вы планируете это сделать? В смысле - каким инструментом пользоваться?

Ну я обычно делаю графически в программе Visio))
Ответить с цитированием
  #14  
Старый 03.04.2008, 12:28
Rosenkrantz Rosenkrantz вне форума
Активный
 
Регистрация: 04.12.2007
Адрес: Москва
Сообщения: 234
Версия Delphi: Delphi 7
Репутация: 40
По умолчанию

Вы вот что, постучитесь ко мне в аську 12742382. А то мы так до морковкиного заговения будем тут переписываться. Да и тема, думаю, перестала быть интересной для широкой форумской общественности.
Ответить с цитированием
  #15  
Старый 03.04.2008, 15:49
mustdie mustdie вне форума
Прохожий
 
Регистрация: 02.04.2008
Сообщения: 5
Репутация: 5
По умолчанию

с помощью memo1 можно вставлять .txt файлы.
а я вставил .html а появился html код.
а как сделать чтоб вставлять именно страницы?
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 11:37.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter