![]() |
Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
![]() |
Екатерина |
![]()
Сообщение
#1
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 24 Пол: Женский Реальное имя: Екатерина Репутация: ![]() ![]() ![]() |
Здравствуйте! Мы начали изучать новую дисциплину «Компьютерная графика». У меня есть задание по лабе на тему "Поворот фигуры на определенное количество градусов". Задание хотелось бы выполнить самостоятельно, но тема оказалась тяжела для понимания.
Подскажите, как реализовать поворот точки на осях координат вокруг их центра на 90 градусов. Если я это пойму, тогда возможно и свою фигуру смогу повернуть самостоятельно. Оси вроде бы правильно составлены. Вот они: implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
x,y: Real;
x0, y0: Integer;
m: Integer;
i: Integer;
n: Integer;
begin
x0 := Image1.Width div 2; // центр координатной плоскости по х оси
y0 := Image1.Height div 2; // центр координатной плоскости по у оси
m := 25; // масштаб
// координатная плоскость
Image1.Canvas.MoveTo(0, y0);
Image1.Canvas.LineTo(ClientWidth, y0);
Image1.Canvas.MoveTo(x0, 0);
Image1.Canvas.LineTo(x0, ClientHeight);
x := -7; // стартовое значение функции
n := Abs(Round(x)); // конечное значение функции
// шкалирование осей
for i := Round(x) to n do
begin
Image1.Canvas.MoveTo(x0+i*m, y0-5);
Image1.Canvas.LineTo(x0+i*m, y0-(-5));
Image1.Canvas.TextOut(x0+i*m, y0+10, IntToStr(i));
Image1.Canvas.MoveTo(x0+5, y0-m*i);
Image1.Canvas.LineTo(x0-5, y0-m*i);
Image1.Canvas.TextOut(x0-15, y0+i*m, IntToStr(-i));
end;
end;
Сообщение отредактировано: Екатерина - 15.03.2012 11:21 |
![]() ![]() |
![]() |
Текстовая версия | 28.07.2025 10:09 |