IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> вращающийся эллипс
e.s.
сообщение 9.05.2007 13:42
Сообщение #1





Группа: Пользователи
Сообщений: 4
Пол: Мужской

Репутация: -  0  +


необходимо нарисовать вращающийся эллипс,
система координат произвольная.
видимо лучший способ- это через параметрическую систему к., но я не могу понять одну вещь
у нас есть ур-е эллипса
x=a*cos(t);
y=b*sin(t);
а как сделать чтобы он вращался?
подобную программу выкладывал Volvo:
для краткоси буду считать что cos и sin ,берут угол от градусов

X0,Y0- координаты центра
angl- угол поворота фигуры


i:=0 to 359 do
begin
cX:=a*cos(i);
cY:=b*sin(i);
X:=X0+cX*cos(angl)-cY*sin(angl);
Y:=Y0+cX*sin(angl)+cY*cos(angl);
end;


так вот, можете мне объяснить откуда такие формулы для X и Y
почему
X:=X0+cX*cos(angl)-cY*sin(angl);
Y:=Y0+cX*sin(angl)+cY*cos(angl);

Сообщение отредактировано: e.s. - 9.05.2007 13:47
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 9.05.2007 14:08
Сообщение #2


Гость






Цитата
откуда такие формулы для X и Y
Тебе же надо точку, координаты которой ты получил в параметрической системе, отрисовать на экране (следовательно - в системе декартовой)? Вот и находим координаты X и Y точки в декартовой с/к, центр которой находится в точке экрана с координатами X0, Y0...
 К началу страницы 
+ Ответить 
e.s.
сообщение 9.05.2007 14:52
Сообщение #3





Группа: Пользователи
Сообщений: 4
Пол: Мужской

Репутация: -  0  +


ну центр Х0 и У0 ето ясно, сХ и сУ тоже все ок, а почему для Х надо делать так:
сX*cos(angl)-cY*sin(angl) --это проекция так будет?

Сообщение отредактировано: e.s. - 9.05.2007 14:57
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
e.s.
сообщение 9.05.2007 15:27
Сообщение #4





Группа: Пользователи
Сообщений: 4
Пол: Мужской

Репутация: -  0  +


все понял как проецируется, BIG THNKS за программу
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Вопрос
сообщение 9.05.2007 23:38
Сообщение #5


Гость






Да, это правильные формулы для эллипсаса.
Но можно вопрос: как это работает на Паскале?
 К началу страницы 
+ Ответить 
e.s.
сообщение 13.05.2007 22:23
Сообщение #6





Группа: Пользователи
Сообщений: 4
Пол: Мужской

Репутация: -  0  +


всмысле? что значит как?
обычная программа с graph'ом, там задается уравнение эллипса и по точкам его рисуешь.
у меня прга- фигуры(точки, окружности, прямоугольники, линии и эллипсы) движутся и вращаются с переменной скоростью. фигур 30 движутся без тормозов, когда >40 то начинает лагать...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Чужак
сообщение 13.05.2007 22:31
Сообщение #7


меркантильный
***

Группа: Пользователи
Сообщений: 161
Пол: Мужской

Репутация: -  6  +


Цитата(Вопрос @ 10.05.2007 0:38) *

Да, это правильные формулы для эллипсаса.
Но можно вопрос: как это работает на Паскале?

Вот-вращающийся эллипс-код.

program El;
uses crt,graph;
var gd, gm, X0, Y0: Integer;
X,Y,cX,cY,a,b,i,angl: Real;
begin
gd := detect;
initgraph(gd, gm, '');
X0:=320; Y0:=240; i:=0;
a:=50; b:=150; angl:=0;
repeat
while i<360 do
begin
i:=i+0.5;
cX:=a*cos(i);
cY:=b*sin(i);
X:=X0+cX*cos(angl)-cY*sin(angl);
Y:=Y0+cX*sin(angl)+cY*cos(angl);
PutPixel(Round(X), Round(Y), 15);
end;
Delay(200); i:=0;
ClearDevice; angl:=angl+0.01;
until keypressed;
closegraph;
end.


У меня нормально работает.




--------------------
Смысл откроется тебе. Красками играя
Жизнь предстанет как поток без конца и края.


В этом мире порой разбиваютсямечты
Но чтобы он стал другой Вдруг в него приходишь ТЫ...

После странствий и скитаний настают другие времена.
Старая волна уходит и приходит новая волна.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 21.06.2025 15:48
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"