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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 30.12.2013, 19:48
Wadimka Wadimka вне форума
Прохожий
 
Регистрация: 27.10.2009
Сообщения: 12
Репутация: 10
По умолчанию как на Bitmap наложить второй bitmap в заданные координаты по 4-м координатам?

А конкретнее, не по 2 координатам, как в StretchDraw
а по 4-м чтоб можно было задать 4 точки по углам квадрата, чтоб его можно было исказить?
как-то находил такую процедуру, сейчас весь интернет перерыл найти не могу в упор.
Ответить с цитированием
  #2  
Старый 30.12.2013, 21:49
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Это API-функция StretchBlt.
Если нужно накладывать с прозрачностью - TransparentBlt.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.

Последний раз редактировалось angvelem, 30.12.2013 в 21:52.
Ответить с цитированием
  #3  
Старый 31.12.2013, 00:30
Wadimka Wadimka вне форума
Прохожий
 
Регистрация: 27.10.2009
Сообщения: 12
Репутация: 10
По умолчанию

Цитата:
Сообщение от angvelem
Это API-функция StretchBlt.
Если нужно накладывать с прозрачностью - TransparentBlt.

Нет это не то, StretchBlt тоже самое что и canvas.StretchDraw
Ответить с цитированием
  #4  
Старый 31.12.2013, 01:13
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,096
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Цитата:
Сообщение от Wadimka
Нет это не то, StretchBlt тоже самое что и canvas.StretchDraw

Именно StretchDraw тебе и нужен:
http://docs.embarcadero.com/products...retchDraw.html

procedure StretchDraw(const Rect: TRect; Graphic: TGraphic);
Rect - как раз тот прямоугольник, в который и надо отрисовывать.
Ответить с цитированием
  #5  
Старый 31.12.2013, 01:19
Wadimka Wadimka вне форума
Прохожий
 
Регистрация: 27.10.2009
Сообщения: 12
Репутация: 10
По умолчанию

Цитата:
Сообщение от lmikle
Именно StretchDraw тебе и нужен:
http://docs.embarcadero.com/products...retchDraw.html

procedure StretchDraw(const Rect: TRect; Graphic: TGraphic);
Rect - как раз тот прямоугольник, в который и надо отрисовывать.

это прямоугольник, на то и прямоугольник, что указывается только 2 координаты, верхний левый угол и нижний правый угол, а мне нажно по произвольным 4-м точкам.


вопрос закрыт, решил при помощи библиотеки Graphics32
TProjectiveTransformation
как раз то что нужно
Ответить с цитированием
  #6  
Старый 31.12.2013, 03:56
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Цитата:
Сообщение от Wadimka
это прямоугольник, на то и прямоугольник, что указывается только 2 координаты, верхний левый угол и нижний правый угол, а мне нажно по произвольным 4-м точкам.
А по твоему, сколько точек нужно указать, чтобы получить прямоугольник? Пора обратно в школу, и усиленно учить азы геометрии.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #7  
Старый 31.12.2013, 13:44
Wadimka Wadimka вне форума
Прохожий
 
Регистрация: 27.10.2009
Сообщения: 12
Репутация: 10
По умолчанию

Цитата:
Сообщение от angvelem
А по твоему, сколько точек нужно указать, чтобы получить прямоугольник? Пора обратно в школу, и усиленно учить азы геометрии.

Ну с геометрий как я вижу у тебя все в порядке, а в программировании по ходу вообще не сечешь

в функциях типа StretchDraw, StretchBlt и тому подобных, указываются только две точки прямоугольника, а именно верхний левый угол и нижний правый угол.
StretchDraw(DataRect, Graphics);
где DataRect типа Trect, которое имеет Left, Top, Right, Bottom
т.е. две точки, первая Left, Top
вторая Right, Bottom
поэтому они и вписуют картинку в этот прямоугольник

а мне нужен не прямоугольник, а скажем трапеция, или многоугольник, с 4 разными углами
а именно, первая точка, X0, Y0 (левый верхний угол)
вторая точка X1, Y1 (правый верхний угол)
третья точка X2, Y2 (левый нижний угол)
четвертая точка X3, Y3 (правый нижний угол)


так понятнее?
Ответить с цитированием
  #8  
Старый 31.12.2013, 19:36
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,096
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Ну так и надо было сначала говорить, что у тебя наложение с нелинейными искажениями.
Ответить с цитированием
  #9  
Старый 31.12.2013, 19:54
Wadimka Wadimka вне форума
Прохожий
 
Регистрация: 27.10.2009
Сообщения: 12
Репутация: 10
По умолчанию

Цитата:
Сообщение от lmikle
Ну так и надо было сначала говорить, что у тебя наложение с нелинейными искажениями.

сорри, просто все процедуры стандартные изначально предполагают 2 точки, вот и не стал уточнять
Ответить с цитированием
  #10  
Старый 31.12.2013, 20:12
Аватар для Pilot_Red
Pilot_Red Pilot_Red вне форума
Продвинутый
 
Регистрация: 01.11.2006
Адрес: Карелия
Сообщения: 702
Версия Delphi: D7
Репутация: 11581
По умолчанию

Цитата:
Сообщение от Wadimka
Ну с геометрий как я вижу у тебя все в порядке, а в программировании по ходу вообще не сечешь
Ухтыш какой дерзкий
Ответить с цитированием
  #11  
Старый 31.12.2013, 22:53
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Цитата:
Сообщение от Wadimka
так понятнее?
Цитата:
Сообщение от Wadimka
А конкретнее, не по 2 координатам, как в StretchDraw
а по 4-м чтоб можно было задать 4 точки по углам квадрата, чтоб его можно было исказить?
как-то находил такую процедуру, сейчас весь интернет перерыл найти не могу в упор.
Мда, и с логикой проблемы, но это дело наживное.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

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