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

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

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

 
 Ответить  Открыть новую тему 
> Есть график. Надо ему добавить "фишек", разукрасить надо график
Zolter
сообщение 17.04.2007 22:21
Сообщение #1





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

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


Есть график - эпициклоида.
График я построил. Но его надо разукрасить. Т.е добавить фишечек. Или чтобы он "якобы разбивался на несколько N-частей" и каждая часть по особому закрашивалась. Или чтобы как-то ещё. На что будет фантазия.

program sd;
uses crt, graph;
Var gb, gm, x,y,a,b,q,p,k : integer;
t,m : real;
n:boolean;
Const
grPath='d:\BP\BGI';

Begin
gb := detect;
InitGraph(gb ,gm ,grPath); {переход в графический режим}
t :=0; {установка начальных значений}
x:= 0;
y := 0;


SetTextStyle(0,HorizDir,0); {определяет стиль и размер шрифта}
OutTextXY(2,3, 'vvedite_a'); {вывод строки в графическом режиме}
gotoXY(13,1); {перемещение курсора в данную точку}
read(a);
OutTextXY(2,18, 'vvedite_b');
gotoXY(13,2);
read(b);
OutTextXY(2, 32,'vvedite_p');
gotoXY(13,3);
read(p);
OutTextXY(2,47,'vvedite_q');
gotoXY(13,4);
read(q);

{===============================}
{проверка первого случая в задании}
{b/a - положительное число }
m:=b/a; {проверка, чтобы b/a было целым числом}
k:=round(m);
if m-k=0 then n:=true
else n:=false;

if ((b/a)>0) and (n=true) and ((p/q)<>(b/a)) then
begin
Repeat
Repeat
t := t+pi/3500;
x := round((a+b)*cos(t)-a*cos((a+b)*t/a));
y := round((a+b)*sin(t)-a*sin((a+b)*t/a));
Putpixel(340+x, 240+y, 5);
until t >= 2*pi;
Until keypressed;
end;

{===================================}
{случай второй}

if ((b/a)=(p/q)) then
begin

Repeat
Repeat
t := t+2*q*pi/3500;
x := round((a+b)*cos(t)-a*cos((a+b)*t/a));
y := round((a+b)*sin(t)-a*sin((a+b)*t/a));
Putpixel(340+x, 240+y, 5);
until t >= 2*pi;
Until keypressed;
closegraph;
end;

{=======================================}
readln;
end.


Сообщение отредактировано: Zolter - 17.04.2007 22:24


Прикрепленные файлы
Прикрепленный файл  epicicloida.PAS ( 1.55 килобайт ) Кол-во скачиваний: 153
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 



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