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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.04.2008, 17:07   #1
Манжосов Денис :)
Участник клуба
 
Регистрация: 29.01.2008
Сообщений: 1,039
По умолчанию Столкновение двух

Простите что так много вопросов задаю. У меня вопрос. Как мне узнать, например если первый image столкнулся с вторым, ну тоесть если они просто коснулись друг с другом в каких-то точках, то тогда, например сделать их невидимыми?
Манжосов Денис :) вне форума Ответить с цитированием
Старый 25.04.2008, 17:17   #2
_Dmitry
Участник клуба
 
Аватар для _Dmitry
 
Регистрация: 02.09.2007
Сообщений: 1,193
По умолчанию

Я полагаю, что в 14 лет систему координат уже проходят в школе.
У всех "имиджей" есть координаты левого верхнего угла (Left,Top), а также ширина и высота (Width,Height). Анализируйте и пишите алгоритм.
_Dmitry вне форума Ответить с цитированием
Старый 25.04.2008, 17:20   #3
Манжосов Денис :)
Участник клуба
 
Регистрация: 29.01.2008
Сообщений: 1,039
По умолчанию

С всеми этими параметрами я пробовал, но я попробую составить алгоритм. И все же бы можете помочь?
Манжосов Денис :) вне форума Ответить с цитированием
Старый 25.04.2008, 18:01   #4
Манжосов Денис :)
Участник клуба
 
Регистрация: 29.01.2008
Сообщений: 1,039
По умолчанию

Умоляю, помогите. У меня совсем ничего не выходит.
Манжосов Денис :) вне форума Ответить с цитированием
Старый 25.04.2008, 18:30   #5
alexBlack
Участник клуба
 
Регистрация: 12.10.2007
Сообщений: 1,204
По умолчанию

Цитата:
Сообщение от Манжосов Денис :) Посмотреть сообщение
С всеми этими параметрами я пробовал, но я попробую составить алгоритм. И все же бы можете помочь?
Непонятно. А Дмитрий разве недостаточно написал ? Покажите путь который Вы избрали. Или словами или код. Попробуем помочь.

Может IntersectRect() подойдет ?

Последний раз редактировалось alexBlack; 25.04.2008 в 18:43.
alexBlack вне форума Ответить с цитированием
Старый 25.04.2008, 18:55   #6
Манжосов Денис :)
Участник клуба
 
Регистрация: 29.01.2008
Сообщений: 1,039
По умолчанию Ответ

У меня вот такой вариант: if image1. Top = image2. Top and image1. Left = image2 . Left then ... Дальше идет код , но мне в программе не надо чтобы код выполнялся только тогда, когда эти два рисунка строго равны в двух точках. Мне надо чтобы если бы они просто касались друг друга в любых координатах. Помогите пож.
Манжосов Денис :) вне форума Ответить с цитированием
Старый 25.04.2008, 18:57   #7
Манжосов Денис :)
Участник клуба
 
Регистрация: 29.01.2008
Сообщений: 1,039
По умолчанию Ответ

Простите, если написал непонятно. Я как смог понятным языком так и написал. Помогите пож.
Манжосов Денис :) вне форума Ответить с цитированием
Старый 25.04.2008, 18:59   #8
alexBlack
Участник клуба
 
Регистрация: 12.10.2007
Сообщений: 1,204
По умолчанию

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

Код:
var R:TRect;
begin
   if intersectRect(R, image1.BoundsRect, image2.BoundsRect)
   then label1.Caption := 'intersect'
   else label1.Caption := 'not intersect';

Последний раз редактировалось alexBlack; 25.04.2008 в 19:03.
alexBlack вне форума Ответить с цитированием
Старый 25.04.2008, 19:08   #9
Манжосов Денис :)
Участник клуба
 
Регистрация: 29.01.2008
Сообщений: 1,039
По умолчанию Ответ

Спасибо вам огромное. Если не составит большого труда, можете написать что значит текст в скобках после intersectRect? Пож
Манжосов Денис :) вне форума Ответить с цитированием
Старый 25.04.2008, 19:12   #10
alexBlack
Участник клуба
 
Регистрация: 12.10.2007
Сообщений: 1,204
По умолчанию

Цитата:
Сообщение от Манжосов Денис :) Посмотреть сообщение
Спасибо вам огромное. Если не составит большого труда, можете написать что значит текст в скобках после intersectRect? Пож
Вообще-то в справке написано, достаточно нажать Ctrl+F1:

Код:
BOOL IntersectRect(
    LPRECT  lprcDst,	// адрес структуры для области пересечения
    CONST RECT  * lprcSrc1,	// адрес структуры первой области 
    CONST RECT  * lprcSrc2 	// адрес структуры второй области 
   );
//Возвращает true, если области пересекаются
alexBlack вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Произведение двух матриц 010 Паскаль, Turbo Pascal, PascalABC.NET 5 03.06.2008 11:33
Несовместимость двух операторов August550 Помощь студентам 16 23.04.2008 21:30
СТолкновение обектов ZhekON Общие вопросы Delphi 3 19.04.2008 21:25
Объединения двух сетей BAHUXA Свободное общение 2 26.11.2007 00:09