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

Масштабирование рисунка относительно окна

14.02.2016, 18:09. Показов 2489. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
вот какая проблема: нужно, чтобы при изменении размера окна ''рисунок'' должен изменяться пропорционально изменению размера окна (проще говоря, рисунок должен остаться тем же, когда изменяться аргументы в setwindowxize(a,b) ).
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
uses
  Graphabc;
 
var
  x, y, z, k: integer;
  I: BYTE;
 
begin
  
  setwindowsize(600, 600);
  clearwindow(clblack);
  
  sleep(1500);
  for i := 1 to 30 do 
  begin
    
    setbrushcolor(clwhite);
    x := random(600) + 1;
    y := random(600) + 1;
    circle(x, y, 2) end;
  sleep(500);
  
  for i := 1 to 10 do 
  begin
    setbrushcolor(clwhite);
    x := random(400) + 1;
    y := random(400) + 1;
    circle(x, y, 4) end;
  
  sleep(500);
  setbrushcolor(clblue);
  
  circle(100, 400, 6); 
  circle(100, 500, 6);
  circle(300, 500, 6);
  circle(300, 300, 6);
  circle(450, 200, 6);
  circle(475, 100, 6);
  circle(530, 180, 6);
  circle(510, 250, 6);
  
  setpencolor(clblue);
  setpenwidth(4);
  sleep(1000);
  {1}line(100, 400, 100, 500);
  {2}line(100, 500, 300, 500);
  {3}line(300, 500, 300, 300);
  {4}line(300, 300, 450, 200);
  {5} line(450, 200, 475, 100);
  {6} line(450, 200, 530, 180);
  {7} line(450, 200, 510, 250);
end.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.02.2016, 18:09
Ответы с готовыми решениями:

Анимация: перемещение и масштабирование рисунка
Вот текст программы: begin SetPenWidth(3); Circle(200,200,120); Circle(200,200,60); FloodFill(200,200,clBlack); ...

Масштабирование PictureABC/SpriteABC в зависимости от размера окна
Мне нужно, чтобы мой объект масштабировался, если масштабируется окно. uses ABCObjects, ABCSprites, GraphABC; var player:...

Масштабирование рисунка
Уже световался здесь по воводу готового скрипта (как найти ту тему - не знаю). Код таокй: <html> <head> ...

4
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33197 / 21493 / 8233
Регистрация: 22.10.2011
Сообщений: 36,886
Записей в блоге: 12
14.02.2016, 18:39
Лучший ответ Сообщение было отмечено Uvdem22 как решение

Решение

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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
uses
  Graphabc;
 
var
  x, y, z, k: integer;
  I: BYTE;
 
begin
  
  setwindowsize(800, 800);
  clearwindow(clblack);
  
  sleep(1500);
  for i := 1 to 30 do 
  begin
    
    setbrushcolor(clwhite);
    x := random(WindowWidth) + 1;
    y := random(WindowHeight) + 1;
    circle(x, y, 2) end;
  sleep(500);
  
  for i := 1 to 10 do 
  begin
    setbrushcolor(clwhite);
    x := random(WindowWidth div 6 * 4) + 1;
    y := random(WindowWidth div 6 * 4) + 1;
    circle(x, y, 4) end;
  
  sleep(500);
  setbrushcolor(clblue);
  
  circle(WindowWidth div 6, WindowHeight div 6 * 4, 6); 
  circle(WindowWidth div 6, WindowHeight div 6 * 5, 6);
  circle(WindowWidth div 6 * 3, WindowHeight div 6 * 5, 6);
  circle(WindowWidth div 6 * 3, WindowHeight div 6 * 3, 6);
  circle(WindowWidth div 60 * 45, WindowHeight div 6 * 2, 6);
  circle(WindowWidth div 60 * 48, WindowHeight div 6, 6);
  circle(WindowWidth div 60 * 53, WindowHeight div 60 * 18, 6);
  circle(WindowWidth div 60 * 51, WindowHeight div 60 * 25, 6);
  
  setpencolor(clblue);
  setpenwidth(4);
  sleep(1000);
  {1}line(WindowWidth div 6, WindowHeight div 6 * 4, WindowWidth div 6, WindowHeight div 6 * 5);
  {2}line(WindowWidth div 6, WindowHeight div 6 * 5, WindowWidth div 6 * 3, WindowHeight div 6 * 5);
  {3}line(WindowWidth div 6 * 3, WindowHeight div 6 * 5, WindowWidth div 6 * 3, WindowHeight div 6 * 3);
  {4}line(WindowWidth div 6 * 3, WindowHeight div 6 * 3, WindowWidth div 60 * 45, WindowHeight div 6 * 2);
  {5}line(WindowWidth div 60 * 45, WindowHeight div 6 * 2, WindowWidth div 60 * 48, WindowHeight div 6);
  {6}line(WindowWidth div 60 * 45, WindowHeight div 6 * 2, WindowWidth div 60 * 53, WindowHeight div 60 * 18);
  {7}line(WindowWidth div 60 * 45, WindowHeight div 6 * 2, WindowWidth div 60 * 51, WindowHeight div 60 * 25);
end.
Пойдет?
1
0 / 0 / 0
Регистрация: 22.11.2015
Сообщений: 7
14.02.2016, 20:40  [ТС]
да, спасибо большое!

Добавлено через 14 минут
скажите, пожалуйста, почему вы выбрали именно эти числа? я имею ввиду те, на которые вы делите(6, 6*3,60 и тп)
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33197 / 21493 / 8233
Регистрация: 22.10.2011
Сообщений: 36,886
Записей в блоге: 12
15.02.2016, 10:15
Потому что если точка при ширине экрана в 600 пикселей рисовалась в позиции 400 (по оси OX), то при ширине экрана в 800 пикселей она будет рисоваться в позиции 400*800/600 (это простейшая пропорция, 5-ый класс средней школы). То есть, мне достаточно разделить старую ширину экрана на 6, умножить на 4, и умножить на новую ширину экрана. В случае, когда координата не делится на 100 нацело, я делю ее на 60 и умножаю на двузначное число.
1
0 / 0 / 0
Регистрация: 22.11.2015
Сообщений: 7
15.02.2016, 19:02  [ТС]
благодарю
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
15.02.2016, 19:02
Помогаю со студенческими работами здесь

Графика: масштабирование рисунка
Помогите сделать масштабирование рисунка. uses Graph, CRT; var Driver,Mode:integer; x,y:integer; xc,yc,r:integer; k:char; ...

Масштабирование рисунка на весь экран
Как сделать масштабирование произвольного рисунка на весь экран?

Произвольное масштабирование рисунка в PictureBox
В PictureBox загружаю рисунок с винта. SizeMode выставлен на Zoom, так что в в PictureBox рисунок влазит целиком. Но мне нужно, чтобы в в...

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

Растягивание формы. Масштабирование рисунка.
Здравствуйте!!! Я написал код, по которому на форме рисуется куб, мне надо сделать так, чтобы при растягивании формы,рисунок тоже...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru