Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
0 / 0 / 1
Регистрация: 15.01.2015
Сообщений: 107

Как сделать наклон объекта на определенный градус?

07.04.2018, 10:47. Показов 2771. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
к примеру имеется изображение Название: 11.png
Просмотров: 44

Размер: 42.2 Кб его надо наклонить на 90 градусов
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
uses GraphABC;
Var x, y, r: Integer;
var b:Picture;
begin
SetWindowSize(500,500);
centerwindow;
lockdrawing;
x := 280;
y := 350;
r := 70;
b:=Picture.Create('1.bmp');
 
Repeat
clearwindow;
setpencolor(clRed);
setbrushcolor(clRed);
b.Draw(0,0);
Circle(x,y,r);
Dec(r,2);
dec(y,7);
Sleep(10);
redraw;
until r<19;
end.
то есть когда шарик подходит к концу завершения цикла объект должен подать
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
07.04.2018, 10:47
Ответы с готовыми решениями:

Как сделать поворот картинки по нажатию кнопок на определённый градус?
доброго время суток как в java сделать поворот картинки по нажатию кнопок на определённыи градус

Как повернуть picturebox на определенный градус ?
Здравствуйте, помогите пожалуйста с вопросом.

как программно повернуть Image на определенный градус
как программно повернуть Image на определенный градус)

16
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
07.04.2018, 10:50
Изображение это графический файл?
0
0 / 0 / 1
Регистрация: 15.01.2015
Сообщений: 107
07.04.2018, 10:52  [ТС]
да вот это Название: 11.png
Просмотров: 38

Размер: 42.2 Кб изображение , в Pascal ABC Net
0
0 / 0 / 1
Регистрация: 15.01.2015
Сообщений: 107
07.04.2018, 10:53  [ТС]
Изображение 1.bmp это просто фон
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
07.04.2018, 11:49
Что-то не нашел я как повернуть картинку. Может заготовить другую, под 90 градусов, первую выгружать, вторую загружать?
Изображения
  
0
0 / 0 / 1
Регистрация: 15.01.2015
Сообщений: 107
07.04.2018, 12:29  [ТС]
я тоже думал об этом варианте,но как 1 картинку выгрузить? все это с помощью процедур оформить?

Добавлено через 38 минут
при загрузке изображения остается белый фон , что с ним можно сделать, волшебная палочка не помогает
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
07.04.2018, 12:40
Да, класс Picture какой-то убогий, используйте модуль ABCObjects.
Pascal
1
2
3
4
5
6
7
uses GraphABC,ABCObjects;
var b:PictureABC;
.............................
b:=PictureABC.Create(300,100,'11.png');//грузим 1 картинку в нужные координаты
//что-то делаем
b.Destroy;//удаляем
b:=PictureABC.Create(300,180,'11b.png');//грузим 2 картинку в нужные координаты
Цитата Сообщение от fokco Посмотреть сообщение
при загрузке изображения остается белый фон ,
Преобразуйте картинки в каком-нибудь графическом редакторе чтобы фона было как можно меньше.
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33395 / 21505 / 8236
Регистрация: 22.10.2011
Сообщений: 36,902
Записей в блоге: 12
07.04.2018, 12:45
Цитата Сообщение от Puporev Посмотреть сообщение
Да, класс Picture какой-то убогий
, используйте нормальные средства WinForms, они позволяют такое, что всем этим самоделкам типа GraphABC и не снилось
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
07.04.2018, 12:45
Максимум что можно сделать, это так.
Миниатюры
Как сделать наклон объекта на определенный градус?  
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
07.04.2018, 12:46
volvo, Это не тебе.
0
0 / 0 / 1
Регистрация: 15.01.2015
Сообщений: 107
07.04.2018, 12:56  [ТС]
вот что имеется



Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
uses GraphABC,ABCObjects;
var b:Picture;
var b1,b2:PictureABC;
Var x, y, r,x1,y1,r1,x0,y0,i: Integer;
begin
SetWindowSize(500,500);
centerwindow;
lockdrawing;
x := 280;
y := 350;
r := 60; // шар
setpenwidth(15);
b:=Picture.Create('1.bmp');
Repeat
clearwindow;
setpencolor(clRed);
setbrushcolor(clRed);
b.Draw(0,0);
b1:=PictureABC.Create(280,200,'11.bmp');//грузим 1 картинку в нужные координаты
//что-то делаем
b1.Destroy;//удаляем
b1:=PictureABC.Create(280,200,'12.bmp');//грузим 2 картинку в нужные координаты
 
Circle(x,y,r);
Dec(r,2);
dec(y,7);
Sleep(10);
redraw;
until r<10;
end.
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
07.04.2018, 13:09
Как сейчас модно говорить среди "политиков" Вы или крестик снимите или трусы наденьте.
Зачем же и PictureABC и Picture? Выкиньте все что относится к последнему.
0
0 / 0 / 1
Регистрация: 15.01.2015
Сообщений: 107
07.04.2018, 13:17  [ТС]
извините,но как мне фон грузить ?
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
07.04.2018, 13:18
Pascal
1
b:=PictureABC.Create(0,0,'1.bmp');
0
0 / 0 / 1
Регистрация: 15.01.2015
Сообщений: 107
07.04.2018, 13:21  [ТС]
c
Pascal
1
b:=PictureABC.Create(0,0,'1.bmp');
происходит мерцание поэтому его убрал
0
 Аватар для JuriiMW
5095 / 2661 / 2355
Регистрация: 10.12.2014
Сообщений: 10,060
09.04.2018, 07:25
Лучший ответ Сообщение было отмечено fokco как решение

Решение

Ну, если картинка небольшая, то можно и трансформацию произвести:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
uses GraphABC;
begin
  var p := Picture.Create('C:\PABCWork.NET\Samples\Applications\TextEditor\Save.png');
  p.Draw(100,10);
  
  var pL := Picture.Create(p.Height, p.Width);
  var pR := Picture.Create(p.Height, p.Width);
  for var y := 0 to p.Width-1 do
    for var x := 0 to p.Height-1 do
      begin
        var c := p.GetPixel(x, y);
        pL.SetPixel(y, p.Height-x-1, c);
        pR.SetPixel(p.Width-y-1, x, c);
      end;
      
  pL.Draw(100 - p.Width, 10 + p.Height);
  pR.Draw(100 + p.Width, 10 + p.Height);
end.
Для больших картинок проще отдельную картинку создать.

А для того, чтобы не мучиться с фоном, картинку лучше хранить в png с прозрачным фоном.
Пример у вас на компьютере: C:\PABCWork.NET\Samples\Graphics\ABCObje cts\Sprites\gr_SpriteUsing.pas
Если в основной модуль программы добавить

Window.Clear(clBlue);

(без разницы где ;–), то увидите прозрачность.
1
0 / 0 / 1
Регистрация: 15.01.2015
Сообщений: 107
08.05.2018, 14:07  [ТС]
добрый день , я кое что сделал ,сможете сказать как убрать мерцание ?
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
uses GraphABC,ABCObjects;
Var x, y, r,x1,y1,r1,x0,y0,i: Integer;
var b:Picture;
var b2:PictureABC;
begin
SetWindowSize(500,500);
centerwindow;
lockdrawing;
x := 280;
y := 350;
r := 60; // шар
setpenwidth(15);
b:=Picture.Create('1.bmp');
Repeat 
clearwindow;
setpencolor(clRed);
setbrushcolor(clRed);
b.Draw(0,0);
Circle(x,y,r);
Dec(r,2);b2:=PictureABC.Create(280,130,'k1.png'); 
dec(y,7);
Sleep(10);b2.Destroy;
redraw;
b2:=PictureABC.Create(280,130,'k1.png'); 
b2.Destroy;
until r<10;
b2:=PictureABC.Create(280,170,'k2.png'); 
end.




0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
08.05.2018, 14:07
Помогаю со студенческими работами здесь

Поворот элементов управления на определенный градус
Как развернуть элемент управления (например кнопку )на 45 градусов и более?

Наклон объекта
Добрый день, подскажите как наклонить объект средствами as3?

Наклон объекта
Можно ли повернуть объект? т.е есть у меня Форма и изображение, и мне нужно изображение повернуть на 45 градусов (наклонить). Возможно ли...

Как сделать искажение битмапа (наклон, перспектива и т.д.)?
Как можно преоброзовать битмап, как показано на рисунках?, задав координаты углов?

Наклон объекта Graphics
Пытаюсь наклонить изображение на определенный угол. Оно наклоняется, но при этом уходит с начальных координат. Как сделать так что бы...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru