Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.11.2016, 20:56   #1
lichking
Пользователь
 
Регистрация: 31.10.2016
Сообщений: 54
По умолчанию пресечечение фигур как сделать?

Узнать не пересечение фигуры 1 с фигурой 2, а вообще есть пресечение каки либо фигур в фигурой 1 и вернуть имя имя фигуры с которой было пресечение.

Последний раз редактировалось lichking; 15.11.2016 в 10:51.
lichking вне форума Ответить с цитированием
Старый 16.11.2016, 07:46   #2
Heneken87
Форумчанин
 
Регистрация: 27.04.2012
Сообщений: 219
По умолчанию

С помощью логики.
Нужны координаты обоих фигур. Задача вами поставлено абстрактно, данных нет, соответственно нет и решения.
Программирование это работа с данными-цифрами, а не с фигурами=)
Пишу много и развернуто
Heneken87 вне форума Ответить с цитированием
Старый 18.11.2016, 19:30   #3
lichking
Пользователь
 
Регистрация: 31.10.2016
Сообщений: 54
По умолчанию

Цитата:
Сообщение от Heneken87 Посмотреть сообщение
С помощью логики.
Нужны координаты обоих фигур. Задача вами поставлено абстрактно, данных нет, соответственно нет и решения.
Программирование это работа с данными-цифрами, а не с фигурами=)
Есть такая функция intersectrect но в этом случае не подойдет. Она выясняет пресечение одной фигуры 1 с другой 2, а мне нужно что бы пресечение фигуры 1 с какой либо фигурой на форме фигуры генеряться автоматически с рандомными кардитами и в случае пресечения необходимо выполнять определенные действия все фигуры непрерывно изменяют свои координаты
lichking вне форума Ответить с цитированием
Старый 18.11.2016, 20:42   #4
Pavia
Лис
Старожил
 
Аватар для Pavia
 
Регистрация: 18.09.2015
Сообщений: 2,409
По умолчанию

Использовать цикл + intersectrect.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал .
Pavia вне форума Ответить с цитированием
Старый 18.11.2016, 21:32   #5
lichking
Пользователь
 
Регистрация: 31.10.2016
Сообщений: 54
По умолчанию

Цитата:
Сообщение от Pavia Посмотреть сообщение
Использовать цикл + intersectrect.
Для использования intersectrect нужно знать точно название фигуры с которой пресечется а я этого не знаю более того даже не знаю сколько фигур будет на форме
lichking вне форума Ответить с цитированием
Старый 18.11.2016, 22:03   #6
Pavia
Лис
Старожил
 
Аватар для Pavia
 
Регистрация: 18.09.2015
Сообщений: 2,409
По умолчанию

lichking
Компьютер это машина с конечным числом состояний и дискретным исполнением. Поэтому все жалобы на непрерывность и неизвестность количества не принимаются.

Заведите массив для фигур. Сразу будете знать их количество. И основной цикл программы вам даст время. В каждом круге есть процедура где положение фигур неизменно. В одной процедуре рассчитываете новые координаты во второй делаете проверку.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал .

Последний раз редактировалось Pavia; 18.11.2016 в 22:05.
Pavia вне форума Ответить с цитированием
Старый 18.11.2016, 22:37   #7
lichking
Пользователь
 
Регистрация: 31.10.2016
Сообщений: 54
По умолчанию

Цитата:
Сообщение от Pavia Посмотреть сообщение
lichking
Компьютер это машина с конечным числом состояний и дискретным исполнением. Поэтому все жалобы на непрерывность и неизвестность количества не принимаются.

Заведите массив для фигур. Сразу будете знать их количество. И основной цикл программы вам даст время. В каждом круге есть процедура где положение фигур неизменно. В одной процедуре рассчитываете новые координаты во второй делаете проверку.
А если координаты изменяются с помощью Random?
lichking вне форума Ответить с цитированием
Старый 18.11.2016, 23:54   #8
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,926
По умолчанию

Цитата:
Сообщение от lichking Посмотреть сообщение
А если координаты изменяются с помощью Random?
Кем они изменяются? Барабашкой? Или вашим собственным кодом?
northener вне форума Ответить с цитированием
Старый 19.11.2016, 10:34   #9
саша40
Участник клуба
 
Регистрация: 12.09.2012
Сообщений: 1,030
По умолчанию

Обнаружить пересечение можно математически. Если происходит пересечение, то соблюдается система из уравнений этих фигур. Так можно обнаружить точки плоскости пересечения(некоторой зоны точек, в которой система уравнений выше соблюдается). В геометрии уже давно известны все виды возможных пересечений фигур, а так же вычислены необходимые для этого уравнения.
Что нужно программисту: Компьютер, Среда программирование, Воображение, Прямые руки, Мозги, Знания этой среды программирования.
Программист-это профессия, а программирование-это моё хобби.
саша40 вне форума Ответить с цитированием
Старый 19.11.2016, 15:41   #10
lichking
Пользователь
 
Регистрация: 31.10.2016
Сообщений: 54
По умолчанию

Цитата:
Сообщение от саша40 Посмотреть сообщение
Обнаружить пересечение можно математически. Если происходит пересечение, то соблюдается система из уравнений этих фигур. Так можно обнаружить точки плоскости пересечения(некоторой зоны точек, в которой система уравнений выше соблюдается). В геометрии уже давно известны все виды возможных пересечений фигур, а так же вычислены необходимые для этого уравнения.
покажите есть фaйл описания функции random
lichking вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как изменить цвет фигур при нажатии? xsens Microsoft Office Excel 4 21.03.2016 22:07
Сделать форму для литья гипсовых фигур Utkin Свободное общение 3 23.09.2012 20:35
Как делать форму виде разных фигур? Seger17 Общие вопросы Delphi 4 30.03.2011 08:51
Как проверить готова ли программа к выводу фигур Miha85193 Мультимедиа в Delphi 2 17.07.2010 17:34