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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.12.2012, 19:16   #1
rustik24
Пользователь
 
Регистрация: 02.02.2012
Сообщений: 19
По умолчанию составить программу для того чтобы рисунок увеличивался от центра.

Line(x+Round(150*d),y+Round(50*d),x +Round(75*d),y+Round(125*d));
Line(x+Round(75*d),y+Round(125*d),x +Round(150*d),y+Round(200*d));
Line(x+Round(150*d),y+Round(200*d), x+Round(225*d),y+Round(125*d));
Line(x+Round(225*d),y+Round(125*d), x+Round(150*d),y+Round(50*d));
Line(x+Round(150*d),y+Round(50*d),x +Round(375*d),y+Round(125*d));
Line(x+Round(225*d),y+Round(125*d), x+Round(375*d),y+Round(125*d));
Line(x+Round(150*d),y+Round(200*d), x+Round(375*d),y+Round(125*d));

фигура.
rustik24 вне форума Ответить с цитированием
Старый 18.12.2012, 19:46   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,289
По умолчанию

А теперь попробуйте объяснить более подробно, что Вы хотите получить (нарисовать).
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 18.12.2012, 20:59   #3
rustik24
Пользователь
 
Регистрация: 02.02.2012
Сообщений: 19
По умолчанию Вот программа с рисунком.

Вот программа с рисунком. В ней рисунок, когда нажимаешь на "+" он увеличивается, но не от центра точки увеличения.


Код:
uses Graph,CRT,IGM_TP7;
var
Driver, Mode:Integer;
x,y,z,c:integer;
d:real;
Xs,Ys:string;
k:char;
procedure rus;
begin
Line(x+Round(150*d),y+Round(50*d),x+Round(75*d),y+Round(125*d));
Line(x+Round(75*d),y+Round(125*d),x+Round(150*d),y+Round(200*d));
Line(x+Round(150*d),y+Round(200*d),x+Round(225*d),y+Round(125*d));
Line(x+Round(225*d),y+Round(125*d),x+Round(150*d),y+Round(50*d));
Line(x+Round(150*d),y+Round(50*d),x+Round(375*d),y+Round(125*d));
Line(x+Round(225*d),y+Round(125*d),x+Round(375*d),y+Round(125*d));
Line(x+Round(150*d),y+Round(200*d),x+Round(375*d),y+Round(125*d));
end;
begin
Driver:=Detect;
InitGraph(Driver,Mode,' ');
if GraphResult <> grok then Halt(1);
x:=100;
y:=100;
d:=1;

repeat
SetColor(15);
rus;
SetColor(0);
Str(x,Xs);
Str(y,Ys);
SetColor(5);
OutTextXY(300,150,'x='+Xs+' : y='+Ys);
k:=ReadKey;
SetColor(0);
rus;
Str(x,Xs);
Str(y,Ys);
Setcolor(0);
OutTextXY(300,150,'x='+Xs+' : y='+Ys);
if k=#77 then x:=x+10;
if k=#75 then x:=x-10;
if k=#72 then y:=y-10;
if k=#80 then y:=y+10;
if k=#13 then z:=z+10;
if k=#8 then z:=z-10;
if x<=-100 then x:=-100;
if x>=140 then x:=140;
if y>=180 then y:=180;
if y<=2 then y:=2;
if k=#43 then d:=d+0.1;
if k=#45 then d:=d-0.1;
until k=#27;
CloseGraph;
end.


___________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.

Последний раз редактировалось Serge_Bliznykov; 19.12.2012 в 15:53.
rustik24 вне форума Ответить с цитированием
Старый 18.12.2012, 21:28   #4
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,289
По умолчанию

Цитата:
но не от центра точки увеличения
Смотря что считать центром увеличения
По хорошему, нужно переписать функции рисования линий, чтобы они чертили от той точки, что Вам нужно.
Как временное решение:
x0 := 200 - Round(150 * d);
y0 := 200 - Round(150 * d);
И в line все x и y заменить на x0 и y0, тогда фигура, будет как-то по-другому сдвигаться (нужно попробовать другие числа вместо 200 и 150).
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 18.12.2012, 21:47   #5
rustik24
Пользователь
 
Регистрация: 02.02.2012
Сообщений: 19
По умолчанию

я попробовал подставлять другие числа как вы и говорили, все равно не получается.
rustik24 вне форума Ответить с цитированием
Старый 18.12.2012, 22:00   #6
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,289
По умолчанию

Код:
    moveto(x, y);
    LineTo(x - Round(75 * d), y - Round(75 * d));
    LineTo(x - Round(150 * d), y);
    LineTo(x - Round(75 * d), y + Round(75 * d));
    LineTo(x, y);
    LineTo(x + Round(150 * d), y);
    LineTo(x - Round(75 * d), y - Round(75 * d));
    moveto(x - Round(75 * d), y + Round(75 * d));
    LineTo(x + Round(150 * d), y);
Попробуйте такой код.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 19.12.2012, 15:34   #7
rustik24
Пользователь
 
Регистрация: 02.02.2012
Сообщений: 19
По умолчанию

не вышло, может что нибудь другое?
rustik24 вне форума Ответить с цитированием
Старый 19.12.2012, 18:12   #8
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,289
По умолчанию

Так, тогда еще раз объясните, откуда увеличивать.
От центра экрана или от центра фигуры?
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 19.12.2012, 18:40   #9
rustik24
Пользователь
 
Регистрация: 02.02.2012
Сообщений: 19
По умолчанию

Задание масштабирование. Нужно чтоб увеличение и уменьшение происходило на месте. Вот аналогично http://www.cyberforum.ru/turbo-pasca...ml#post3783030
rustik24 вне форума Ответить с цитированием
Старый 19.12.2012, 18:44   #10
rustik24
Пользователь
 
Регистрация: 02.02.2012
Сообщений: 19
По умолчанию

ой, все работает спасибо большое)))
rustik24 вне форума Ответить с цитированием
Ответ


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

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Составить алгоритм и программу для перестановки элементов в заданном массиве Р (10) так, чтобы в начале стояли элементы... Кулибаба Петро JavaScript, Ajax 1 23.06.2012 16:12
Обязательно ли сдавать физику для того чтобы поступить на программиста? Xesus18 Свободное общение 16 28.01.2011 08:10
Нужен код для того чтобы открывалась главная страница после отправкизаказа. Иван_С HTML и CSS 7 14.12.2010 23:57
Нужна функция или процедура для того чтобы программа стала резидентной! star007 Помощь студентам 3 22.03.2010 08:59
2 столбец для того, чтобы автоматически создавались числа, которые позволяли уравнивать числа в 3 столбце ppv Microsoft Office Excel 37 05.08.2009 21:19