Форум программистов, компьютерный форум, киберфорум
Наши страницы
Lazarus
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
MMSblack
1 / 1 / 0
Регистрация: 24.05.2013
Сообщений: 32
1

Компьютерная графика

02.11.2014, 00:38. Просмотров 593. Ответов 3
Метки нет (Все метки)

Очень нужна помощь!!! Написать программы в Лазарусе.

1. Проиллюстрировать законы Кеплера, согласно которым планеты
движутся по эллипсам, в одном из фокусов которых находится солнце. Параметрические уравнения для траектории движения по эллипсу
x=R1 / cos t
y=R2 / sin t, в интервале [0, 2пи].

2. Разработать программу, которая демонстрирует на экране движение квадрата по функции f(x) = sin (2x / (x+2)), затирая за собой кривую. Квадрат при этом вращается по часовой стрелке.

Заранее спасибо

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.11.2014, 00:38
Ответы с готовыми решениями:

Компьютерная графика
Кто-нибудь может помочь? 1. Окружность радиуса r перемещается на экране справа...

Lazarus - Компьютерная графика
Очень нужна помощь!!! Написать программы в Лазарусе. 1. Изобразить на экране...

Компьютерная графика
извините за наглость,но вы могли бы помочь еще вот с этим необходимо...

компьютерная графика delphi
Помогите с задачкой. Бюджет 300 руб. срок 2 сутки. feja1387@mail.ru Задание....

компьютерная графика
1.Нарисуйте изображение шестеренки в CorelDRAW, освещенной рассеянным светом...

3
Puporev
Модератор
55411 / 42542 / 29395
Регистрация: 18.05.2008
Сообщений: 100,630
02.11.2014, 09:15 2
1. Например так.
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
var
  Form1: TForm1;
  xc,yc,a,b,c,x,y :integer;
  t:real;
implementation
 
{$R *.lfm}
 
{ TForm1 }
 
procedure TForm1.FormCreate(Sender: TObject);
begin
xc:=Form1.ClientWidth div 2;//центр формы
yc:=Form1.ClientHeight div 2;
a:=200;//больший радиус
b:=180;//меньший радиус
c:=round(a*sqrt(1-b*b/(a*a)));//фокальное расстояние
Shape1.Left:=xc+c-Shape1.Width div 2;//положение фигуры Солнца
Shape1.Top:=yc-Shape1.Height div 2;
x:=xc+a;
y:=yc;
Shape2.Left:=x-Shape2.Width div 2; //положение фигуры планеты
Shape2.Top:=y-Shape2.Height div 2;
Timer1.Enabled:=false; //тайме выключен
Timer1.Interval:=20; //интервал
Button1.Caption:='П У С К';//кнопка в положении выключено
t:=0;//начальный угол
end;
 
procedure TForm1.Button1Click(Sender: TObject);
begin
  if Timer1.Enabled=false then Button1.Caption:='П У С К'//переключение таймера
  else Button1.Caption:='С Т О П';
  Timer1.Enabled:=not Timer1.Enabled;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
t:=t+0.01; //увеличиваем угол
x:=xc+round(a*cos(t));//определяем новые координаты центра планеты
y:=yc-round(b*sin(t));
Shape2.Left:=x-Shape2.Width div 2; //перемещаем TShape
Shape2.Top:=y-Shape2.Height div 2;
end;
0
Вложения
Тип файла: rar Вращение планетаы вокруг солнца.rar (124.5 Кб, 16 просмотров)
Puporev
Модератор
55411 / 42542 / 29395
Регистрация: 18.05.2008
Сообщений: 100,630
02.11.2014, 12:26 3
2. Например так.
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
var
  Form1: TForm1;
  x0,y0,x1,y1:integer; //начало координат и текущее положение точки
  x,y,mx,my,u:real;//координаты в реале, масштабы по осям, угол поворота
implementation
 
{$R *.lfm}
 
{ TForm1 }
function F(x:real):real; //функция траектории
begin
F:=sin(2*x/(x+2))
end;
//построение квадрата
//кооодинаты центра, половина длины диаметра, цвет, угол, холст
procedure Kvadrat(x,y,r,c:integer;u:real;cv:TCanvas);
begin
with cv do
 begin
  Pen.Color:=c;
  Brush.Color:=c;
  Polygon([Point(x+round(r*cos(u)), y -round(r*sin(u))),
           Point(x+round(r*cos(u+pi/2)), y-round(r*sin(u+pi/2))),
           Point(x+round(r*cos(u+pi)), y-round(r*sin(u+pi))),
           Point(x+round(r*cos(u+3*pi/2)), y-round(r*sin(u+3*pi/2))),
           Point(x+round(r*cos(u)), y-round(r*sin(u)))]);
 
 end;
end;
//зададим основные параметры
procedure TForm1.FormCreate(Sender: TObject);
begin
x0:=30;
y0:=Form1.ClientHeight-30;
mx:=Form1.ClientWidth/20;
my:=(Form1.ClientHeight-80)/F(20);
Button1.Caption:='П У С К';
Timer1.Enabled:=false;
Timer1.Interval:=1;
u:=-pi/4;
doublebuffered:=true;//по идее должно уменьшить мерцание, но . . .
end;
//создание траектории
procedure TForm1.Button1Click(Sender: TObject);
begin
with Form1.Canvas do
 begin
  pen.Color:=clRed;
  x:=0;
  y:=F(x);
  x1:=x0;
  y1:=y0;
  moveto(x1,y1);
  while x<=20 do
   begin
    x:=x+0.001;
    y:=F(x);
    x1:=x0+round(x*mx);
    y1:=y0-round(y*my);
    lineto(x1,y1);
   end;
 end;
Timer1.Enabled:=true;//включим таймер
Kvadrat(x0,y0,20,clBlue,u,Form1.Canvas);//нарисуем исходный квадрат
x:=0; //вернем все координаты в начальное положение
y:=F(x);
x1:=x0;
y1:=y0;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Kvadrat(x1,y1,20,clBtnFace,u,Form1.Canvas);//стираем предыдущее изображение вместе с траекторией
u:=u-0.05;//уменьшим угол, по часовой стрелке
x:=x+0.05;//увеличим Х
y:=F(x);//новое значение Y
x1:=x0+round(x*mx);
y1:=y0-round(y*my);
Kvadrat(x1,y1,20,clBlue,u,Form1.Canvas);//рисуем на новом месте
if x1>Form1.ClientWidth then Timer1.Enabled:=false;//дошли до края, выключим таймер
end;
0
Вложения
Тип файла: rar Движение и вращение квадрата по траектории.rar (125.1 Кб, 15 просмотров)
MMSblack
1 / 1 / 0
Регистрация: 24.05.2013
Сообщений: 32
02.11.2014, 16:03  [ТС] 4
Puporev, Спасибо большое!!!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.11.2014, 16:03

Компьютерная графика
Доброго времени суток. помогите пожалуйста разобраться с поворотом фигуры на...

компьютерная графика
1)изобразить вращение отрезка вокруг своего центра, совпадающего с центром...

Компьютерная графика 3D.
Потребовалось мне сделать проект с 3D графикой. Т.е. надо было нарисовать...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru