|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
17.05.2009, 13:09 | #1 |
Пользователь
Регистрация: 22.03.2009
Сообщений: 76
|
Паскаль. Задача на графику..помогите доделать((
Здравствуйте. Мне нужно нарисовать кораблик, который двигался бы по синусоиде..вот кораблик вроде сделала, разобралась, но он плывет по прямой..и то коряво..помогите пожалуйста..подскажите что не так..
[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.] |
17.05.2009, 16:09 | #2 |
Пользователь
Регистрация: 06.01.2009
Сообщений: 72
|
Вот пример исправленного кода, но данному алгоритму работает очень долго.
Код:
ася: тристадевяносто 068 ноль восемь шесть
|
17.05.2009, 16:58 | #3 |
Пользователь
Регистрация: 22.03.2009
Сообщений: 76
|
Да, все само собой работает)) спасибо за помощь))
|
17.05.2009, 16:59 | #4 |
Пользователь
Регистрация: 22.03.2009
Сообщений: 76
|
А можно к вам еще обратиться. У меня задача такая, нужно нарисовать землю и вращающуюся вокруг нее луну, при чем так фто бы луна пересекала землю сзади. Ну вот они у меня движутся, только никак не могу раскрасить и не понимаю как сделать так фто бы луна пересекала землю, но изображение земли при этом не повреждалось..
[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] |
17.05.2009, 17:22 | #5 |
Пользователь
Регистрация: 06.01.2009
Сообщений: 72
|
хм... надо подумать, напишу - выложу код сюда)
ася: тристадевяносто 068 ноль восемь шесть
|
17.05.2009, 17:28 | #6 |
Пользователь
Регистрация: 22.03.2009
Сообщений: 76
|
спасибо, если вам не трудно)
|
17.05.2009, 18:03 | #7 |
Пользователь
Регистрация: 06.01.2009
Сообщений: 72
|
Вот код, но опять таки не очень быстро работает по такому алгоритму, зато преподаватель сразу поймет что сделано не на стороне)
Код:
ася: тристадевяносто 068 ноль восемь шесть
|
17.05.2009, 18:19 | #8 |
Пользователь
Регистрация: 22.03.2009
Сообщений: 76
|
Зато все предельно ясно. Спасибо за помощь))
|
17.05.2009, 18:24 | #9 |
Пользователь
Регистрация: 06.01.2009
Сообщений: 72
|
обращайтесь)
ася: тристадевяносто 068 ноль восемь шесть
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Помогите решить задачу на графику! | Fatality | Помощь студентам | 3 | 29.04.2009 19:57 |
Помогите доделать задачу по паскаль. | aleksandr_dss | Помощь студентам | 3 | 19.12.2008 10:56 |
Delphi 7 задача на графику, игрушка | Agent[PNZ] | Помощь студентам | 2 | 29.04.2008 10:54 |
паскаль l помогите доделать задачу по одномерн массиву | braza | Паскаль, Turbo Pascal, PascalABC.NET | 15 | 27.04.2008 14:33 |
Задача Delphi. Помогите доделать! | Oksana11 | Помощь студентам | 8 | 27.12.2007 23:00 |