!!!!!!!!!!!!!ПОМОГИТЕ С ГРАФИКОЙ В ПАСКАЛЕ!!!!!!!!!!!!

Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду

Vovchik
Сообщения: 196
Зарегистрирован: 28 фев 2008, 18:32
Контактная информация:

А шаблон ето как ???
airyashov
Сообщения: 441
Зарегистрирован: 02 ноя 2007, 10:31

обойдитесь простыми эллипсами, на рот менять оси, впринципе все просто
Vovchik
Сообщения: 196
Зарегистрирован: 28 фев 2008, 18:32
Контактная информация:

а как быть с перемешением, не выходя за границы екрана ???
MOTOCoder
Сообщения: 548
Зарегистрирован: 14 янв 2008, 20:27
Откуда: Россия, Псков

А перемещать надо кнопками или автоматически?
Ни что так не ограничивает фантазию программиста, как компилятор...
airyashov
Сообщения: 441
Зарегистрирован: 02 ноя 2007, 10:31

Vovchik писал(а):а как быть с перемешением, не выходя за границы екрана ???
условия проверяйте для эллипса лица, относительно центра, размер же известен
за 100р напишу, если уж совсем влом самому
MOTOCoder
Сообщения: 548
Зарегистрирован: 14 янв 2008, 20:27
Откуда: Россия, Псков

Во жизнь пошла!
Все денег требуют.

Если можете подождать до завтра, скорее всего напишу.
Ни что так не ограничивает фантазию программиста, как компилятор...
airyashov
Сообщения: 441
Зарегистрирован: 02 ноя 2007, 10:31

MOTOCoder писал(а):Во жизнь пошла!
Все денег требуют.

Если можете подождать до завтра, скорее всего напишу.
Если хотите пишите за даром, Я уже написался для души, помочь можно, но это не ступор в задаче - это банальная лень и не желание почитать хоть минимум литературы.
Хыиуду
Сообщения: 2442
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

Написать процедуру "Нарисовать лицо по координатам Х, У", если делать смещение - вызвать ту же процедуру, но с измененными Х, У
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
MOTOCoder
Сообщения: 548
Зарегистрирован: 14 янв 2008, 20:27
Откуда: Россия, Псков

Вот простейший вариант.
Изображение карявое, но принцип должен быть понятен.
[syntax='Delphi']
program face;

uses crt, graph;

var
BaseX,BaseY:integer;
gd,gm:integer;
VR,HR:word;
MoothState:integer;
EyesState:integer;
EyesPos:integer;
ActPage,VisPage:byte;
I:integer;


procedure Init;
begin
gd:=3;
gm:=0;
InitGraph(gd,gm,'');
if GraphResult <> grOK then
begin
writeln('Graphics initialisation error');
readln;
halt;
end;
VR:=70;
HR:=80;
BaseX:=100;
BaseY:=0;
ActPage:=0;
VisPage:=1;
end;

procedure Flip;
begin
Case ActPage of
0:begin
VisPage:=0;
ActPage:=1;
end;
1:begin
VisPage:=1;
ActPage:=0;
end;
end;
SetActivePage(ActPage);
SetVisualPage(VisPage);
end;

procedure DrawFace;
begin
ClearViewPort;
SetFillStyle(1,15);
FillEllipse(BaseX+HR,BaseY+VR,HR,VR);
SetFillStyle(0,0);
{рот}
Case MoothState of
1:FillEllipse(BaseX+HR,BaseY+110,30,20);
2:FillEllipse(BaseX+HR,BaseY+110,40,15);
3:FillEllipse(BaseX+HR,BaseY+110,50,10);
end;
{глаза}
Case EyesState of
1:EyesPos:=0;
2:EyesPos:=10;
3:EyesPos:=-10;
end;
SetColor(0);
SetFillStyle(1,15);
FillEllipse(BaseX+40,BaseY+50,25,10);
FillEllipse(BaseX+100,BaseY+50,25,10);
{зрачки}
SetFillStyle(0,0);
FillEllipse(BaseX+40+EyesPos,BaseY+52,10,5);
FillEllipse(BaseX+100+EyesPos,BaseY+52,10,5);
end;

begin
Init;
i:=1;
repeat

if BaseX+HR*2>=GetMaxX then
I:=-1;
if BaseX<=0 then
I:=1;
Inc(BaseX,i);
if ((basex mod 10)=0) then
if moothstate<>3 then
inc(moothstate) else moothstate:=1;
if ((basex mod 15)=0) then
if EyesState<>3 then
inc(EyesState) else EyesState:=1;
Drawface;
Flip;
Delay(100);

until keypressed;
CloseGraph;

end.

[/syntax]
Ни что так не ограничивает фантазию программиста, как компилятор...
Аватара пользователя
Игорь Акопян
Сообщения: 1440
Зарегистрирован: 13 окт 2004, 17:11
Откуда: СПБ
Контактная информация:

не надо плодить темы с одинаковым названием и сутью
Изображение
Ответить