!!!!!!!!!!!!!ПОМОГИТЕ С ГРАФИКОЙ В ПАСКАЛЕ!!!!!!!!!!!!
Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду
А шаблон ето как ???
обойдитесь простыми эллипсами, на рот менять оси, впринципе все просто
а как быть с перемешением, не выходя за границы екрана ???
А перемещать надо кнопками или автоматически?
Ни что так не ограничивает фантазию программиста, как компилятор...
условия проверяйте для эллипса лица, относительно центра, размер же известенVovchik писал(а):а как быть с перемешением, не выходя за границы екрана ???
за 100р напишу, если уж совсем влом самому
Во жизнь пошла!
Все денег требуют.
Если можете подождать до завтра, скорее всего напишу.
Все денег требуют.
Если можете подождать до завтра, скорее всего напишу.
Ни что так не ограничивает фантазию программиста, как компилятор...
Если хотите пишите за даром, Я уже написался для души, помочь можно, но это не ступор в задаче - это банальная лень и не желание почитать хоть минимум литературы.MOTOCoder писал(а):Во жизнь пошла!
Все денег требуют.
Если можете подождать до завтра, скорее всего напишу.
Написать процедуру "Нарисовать лицо по координатам Х, У", если делать смещение - вызвать ту же процедуру, но с измененными Х, У
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Вот простейший вариант.
Изображение карявое, но принцип должен быть понятен.
[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]
Изображение карявое, но принцип должен быть понятен.
[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
- Откуда: СПБ
- Контактная информация:
не надо плодить темы с одинаковым названием и сутью
