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

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

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

> Паскаль. Задача на графику..помогите доделать((
Diamond
сообщение 17.05.2009 12:09
Сообщение #1





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

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


Здравствуйте. Мне нужно нарисовать кораблик, который двигался бы по синусоиде..вот кораблик вроде сделала, разобралась, но он плывет по прямой..и то коряво..помогите пожалуйста..подскажите что не так..
program 1; 
uses graph, crt;
var
grDriver, grMode, ErrCode, i: Integer;
n: char;
p: fillpatterntype;
begin
grDriver := Detect;
InitGraph(grDriver, grMode,' ');
ErrCode := GraphResult;
if ErrCode = grOk then
begin
while n<>#27 do
begin
setbkcolor(9);
line(600, 240, 500, 240);
line(500, 240, 480, 200);
line(600, 240, 610, 200);
line(480, 200, 610, 200);
rectangle(590, 150, 560, 200);
rectangle(540, 170, 525, 200);
moveto(10, 245);
for i:=0 to 640 do
begin
lineto(i, round(2*sin(i*0.2))+245);
end;
getfillpattern(p);
setfillpattern(p, 1);
floodfill(480, 300, white);
setfillpattern(p, 3);
floodfill(1, 1, 15);
n:=readkey;
if n=' ' then
begin
for i:=0 to 520 do
begin
line(600-i, 240, 500-i, 240);
line(500-i, 240, 480-i, 200);
line(600-i, 240, 610-i, 200);
line(480-i, 200, 610-i, 200);
rectangle(590-i, 150, 560-i, 200);
rectangle(540-i, 200, 575-i, 200);
setcolor(black);
line(600-i, 240, 500-i, 240);
line(500-i, 240, 480-i, 200);
line(600-i, 240, 610-i, 200);
line(480-i, 200, 610-i, 200);
rectangle(590-i, 150, 560-i, 200);
rectangle(540-i, 200, 575-i, 200);
end;
end;
end;
CloseGraph;
end
else
Writeln('Graphics error:', GraphErrorMsg(ErrCode));
end
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Diamond
сообщение 17.05.2009 15:12
Сообщение #2





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

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


А можно к вам еще обратиться. У меня задача такая, нужно нарисовать землю и вращающуюся вокруг нее луну, при чем так фто бы луна пересекала землю сзади. Ну вот они у меня движутся, только никак не могу раскрасить и не понимаю как сделать так фто бы луна пересекала землю, но изображение земли при этом не повреждалось..
uses graph, crt;
const a = 300;
b = 230;
r = 150;
r1 =10;
dphi = 2*Pi/72;
n =18;
var grDriver,
grMode,
grErr:integer;
i, x, y:integer;
phi :real;

begin
grDriver:=Detect;
InitGraph(grDriver, grMode,'c:\');
grERR:=graphResult;
if grErr<>grOK then
begin
writeln('ошибка ',graphErrorMsg(grErr));
halt
end;
setcolor(green);
circle( a, b, r div 2 );
phi:= 0;
while not keypressed do
begin
y:=round(R*sin(phi)/2);
x:=round(R*cos(phi));
setcolor(green);
circle(x+a,y+b,R1);

delay(5000);

setcolor( getBkColor );
circle(x+a,y+b,R1);
phi:= phi+dphi;
end;

closegraph;

end.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


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

 



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