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

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

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

2 страниц V  1 2 >  
 Ответить  Открыть новую тему 
> Графика. Двужущаяся точка., Точка совершает колебания
сообщение
Сообщение #1


Новичок
*

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

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


Помогите с графикой! Нужно изобразить точку, совершающую независимые гармонические колебания с частотой w1 по горизонтали и с частотой w2 по вертикали. (амплитуда тех и других колебаний равна а). Считать, что в момент времени t точка имеет координаты x=a cos w1(t-t1) y=a cos w2(t-t2); t1 и t2 даны. Предусмотреть возможность управления с клавиатуры значениями w1 и w2.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

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


Что именно не получается с графикой?
Рисуешь точку, запоминаешь координаты, пересчитываешь координаты на новое положение, стираешь точку в старом положении, рисуешь в новом... и т.д...


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Новичок
*

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

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


В графике ноль. Точку могу с трудом нарисовать.

Сообщение отредактировано: Accer -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гуру
*****

Группа: Пользователи
Сообщений: 1 168
Пол: Мужской
Реальное имя: Сергей Андрианов

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


Цитата(Accer @ 28.12.2007 7:23) *
Точку могу с трудом нарисовать.
Судя по условию, именно это от тебя и требуется. :D
Реально по такому задаию можно сделать очень красивую программу, рисующую фигуры Лиссажу.
ПОказывай, что уже сделал.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Новичок
*

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

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


Я не понимаю алгоритм работы этой программы!!!
Рисуем точку-удаляеи-русуем в другом месте-снова удаляем-...-повторяем все снова?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гуру
*****

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

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


Абсолютно верно! Алгоритм понят.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Новичок
*

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

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


smile.gif а как задать связать с формулой???
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Гуру
*****

Группа: Пользователи
Сообщений: 1 168
Пол: Мужской
Реальное имя: Сергей Андрианов

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


Связать что с чем?

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

Сообщение отредактировано: andriano -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Новичок
*

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

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


wacko.gif wacko.gif wacko.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


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

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

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


Что-то недополнял задание.
Точка должна колебаться либо в вертикальной, либо в
горизонтальной плоскости (по выбору пользователя)/или же
одновременно в вертикальной и горизонтальной
(тогда как это реализовать-направлений движения-четыре
вверх/вниз/вправо/влево, а точка то одна)?


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


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

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


Новичок
*

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

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


А можно увидеть пример с простым движением точки туда обратно smile.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

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


Цитата(Чужак @ 28.12.2007 22:02) *
Точка должна колебаться либо в вертикальной, либо в горизонтальной плоскости (по выбору пользователя)/или же одновременно в вертикальной и горизонтальной (тогда как это реализовать-направлений движения-четыре
вверх/вниз/вправо/влево, а точка то одна)?
Чужак, не фантазируй, про плоскости никто ничего не говорил. Точка колеблется вдоль горизонтальной оси (скажем, Х) и вертикальной оси (скажем, Y). Иначе говоря:
x=a cos w1(t-t1)
y=a cos w2(t-t2)
- как сказано в условии.
Accer, что тебе нужно связать? Математические координаты с экранными? Это можно сделать примерно так:
xs:=Round((x-x1)/(x2-x1)*GetMaxX);
ys:=Round((y2-y)/(y2-y1)*GetMaxY);
Если ты оформишь их как функции:
function Xs(x:real):integer;
begin
Xs:=(x-x1)/(x2-x1)*GetMaxX
end;

(и аналогично для Ys; здесь х1 - левая граница экрана, а х2 - правая, например х1=-а и х2=а)
- то, например, вот так можно нарисовать оси координат:
Line(x1,0,x2,0);
Line(0,y1,0,y2);

А так ставить саму точку:
PutPixel(Xs(x),Ys(y),White)

- и так ее стирать:
PutPixel(Xs(x),Ys(y),Black)


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #13


Новичок
*

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

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


Спасибо, я попоробую сделать
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #14


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

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

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


Цитата(Lapp @ 29.12.2007 7:24) *

Чужак, не фантазируй, про плоскости никто ничего не говорил. Точка колеблется вдоль горизонтальной оси (скажем, Х) и вертикальной оси (скажем, Y). Иначе говоря:
x=a cos w1(t-t1)
y=a cos w2(t-t2)
- как сказано в условии.

Я это и имел в виду. Слово "плоскость" не вполне уместна...
Цитата(Lapp @ 29.12.2007 7:24) *

Если ты оформишь их как функции:
function Xs(x:real):integer;
begin
Xs:=(x-x1)/(x2-x1)*GetMaxX
end;

(и аналогично для Ys; здесь х1 - левая граница экрана, а х2 - правая, например х1=-а и х2=а)

Нужны ли сдесь функции?
Цитата(Accer @ 29.12.2007 5:27) *

А можно увидеть пример с простым движением точки туда обратно smile.gif

Можно, увидишь... cool.gif
Я тут делаю программу, которая условно называется
"визуализатор синусоид". (В программе использован фрагмент кода volvo,
помещенный на форуме-линия вращалась в круге).

program VisualSinusoid;
Uses Crt, Graph;
Const r = 80;
Label 1;
Var gd, gm: Integer; t,X,Y: Real;
Begin
InitGraph(gd,gm,''); t:=0;
1: X:=280;
SetColor(15);
Circle(120,240,r);
SetColor(2);
Line(120, 240, Round(120+r*cos(t)), Round(240+r*sin(t)));
Line(Round(120+r*cos(t)), Round(240+r*sin(t)),
280, Round(240+r*sin(t)) );
X:=X+1; Y:=240+r*sin(t);
PutPixel(Round(X), Round(Y), 11);
Delay(300);
SetColor(0);
Line(120, 240, Round(120+r*cos(t)), Round(240+r*sin(t)));
Line(Round(120+r*cos(t)), Round(240+r*sin(t)),
280, Round(240+r*sin(t)));
t:=t+0.05;
if X>600 then begin ClearDevice; goto 1; end
until KeyPressed;
CloseGraph
End.



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


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

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


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

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


Цитата(Чужак @ 29.12.2007 22:11) *

Нужны ли сдесь функции?

Функции здесь не обязательны, но в высшей степени полезны с точки зрения логики. Очень правильно разделять экранные координаты и абстрактные (математические). Функции служат именно этой цели. Новички, как правило, работают непосредственно в экранных координатах, подстраивая свою задачу под них. В маленьких прогах это допустимо, но в больших приведет к проблемам.
Более того, во многих случаях удобно ввести еще один уровень..


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #16


Новичок
*

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

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


Компилятор не может найти Graph.tpu!!!!

Что делать unsure.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #17


Профи
****

Группа: Пользователи
Сообщений: 865
Пол: Мужской
Реальное имя: Вячеслав

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


Скопируй из папки Units файлы Graph.Tpu в папку BIN
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #18


Новичок
*

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

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


GRAPH3.TPU был, его скопировал, не работает
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #19


Профи
****

Группа: Пользователи
Сообщений: 865
Пол: Мужской
Реальное имя: Вячеслав

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


А сама прога там же (в BIN)?
А остальные тож скопировал (Graph.Tpu)?

Сообщение отредактировано: Client -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #20


Новичок
*

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

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


ЕГО НЕТ blink.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 





- Текстовая версия 28.03.2024 15:15
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name