Помогите, пожалуйста!!! Мне нужно написать графический редактор объектов на Паскаль, который бы рисовал, перетаскивал, изменял размеры и удалял графические примитивы.... Возможно, кто-то сможет мне помочь...
Я пытаюсь разобраться сама, но получается не слишком хорошо.... Несколько дней назад я похоронила любимого человека и в голову мало что лезет... если кто-то может помочь, то я буду очень признательна... Заранее спасибо.... |
Слинкин Д.А. каждый год заставляет студентов писать ЭТО. Обратись к старшему курсу. |
А кстати, под какую ОСь это безобразие пишется? _________________ Ин дер гросен фамилие нихт клювен клац-клац |
andy ice писал(а): А кстати, под какую ОСь это безобразие пишется?под win/dos |
ню. или вин или дос. если вин - юзая винапи многое себе можно простить. _________________ Ин дер гросен фамилие нихт клювен клац-клац |
andy ice писал(а): если вин - юзая винапи многое себе можно простить.Ну кто их знает, что сейчас информаики учат на 3-м(2-м?) курсе. Когда моему курсу давали такое задание, нам никто про винапи не рассказывал |
а чем рисовали квадратики? _________________ Ин дер гросен фамилие нихт клювен клац-клац |
andy ice
в паскале вроде есть rectangle если память мне не изменяет |
ArtFul писал(а): в паскале вроде есть rectangle _________________ Ин дер гросен фамилие нихт клювен клац-клац |
andy ice писал(а): егэа-вэгэа-бэгэи Точно! |
Shelby о шгпи даже не слышала.. какой там Слинкин Д.А. |
да... вы меня простите... я не из вашего города... и честно говоря даже не знаю где он находится... Я учусь в городе Орел... но у нас мне обратиться не к кому, поэтому лазаю по интернету в поисках помощи... вот... |
Shelby
раз из другого города, то желательно услышать более подробные сведения _________________ Ин дер гросен фамилие нихт клювен клац-клац |
о чем? о том, что мне нужно? |
да конечно _________________ Ин дер гросен фамилие нихт клювен клац-клац |
мне нужно написать графический редактор на паскале. Он должен рисовать треугольник, четырехугольник, круг , линию и точку. Размер этих фигур варьируется пользователем. Их нужно перемещать, изменять их размеры и удалять. |
из другого города парень умер? |
да, из дркгого... из Орла... если действительно интересно, то вот http://www.orel-news.ru/index.php?main=showorelnews&id=5955 |
почитал, жаль парня смерть не из лучших |
Эй паскальщики - помогите девушке, что вам трудно чтоли _________________ Скажи мне чей Крым, и я скажу кто ты. |
Если ещё не позно могу скинуть исходник проги которая создаёт графические объекты (точка, линия, прямоугольник, окружность), которые можно перетаскивать с помощью мыши. |
сюды выкладывай _________________ Ин дер гросен фамилие нихт клювен клац-клац |
Вот:
Uses Graph,crt,M_Graph,Mouse; Var x1,y1,x,y,i,gd,gm:Integer; obj:Ppoint; r,l:boolean; Begin Randomize; gd:=Detect; InitGraph(gd,gm,''); Case random(4) of 0: Obj:=new(PPoint,Init(random(640),random(480),random(15)+1)); 1: Obj:=new(PCircle,Init(random(640),random(480),random(15)+1,random(100))); 2: Obj:=new(PLine,Init(random(640),random(480),random(15)+1,random(640)-320,random(480)-240)); 3: Obj:=new(PRectangle,Init(random(640),random(480),random(15)+1,random(640)-320,random(480)-240)); end; obj^.show; ChkAndReset; Repeat ShowMouse; Delay(20); HideMouse; x1:=x; y1:=y; GetMouseState(x,y,l,r); if l and obj^.PointIn(x1,y1) then obj^.Move(x-x1,y-y1); until keypressed; dispose(obj,done); CloseGraph; end. |
крута. осталось выложить исходники используемых объектов _________________ Ин дер гросен фамилие нихт клювен клац-клац |
Unit M_Graph;
{--------------------------------------------} Interface {--------------------------------------------} Type PPoint=^TPoint; PCircle=^TCircle; PLine=^TLine; PRectangle=^TRectangle; TPoint=object x,y,c:Integer; Constructor Init(_x,_y,_c:integer); Procedure Show;virtual; Procedure Hide;virtual; Function PointIn(_x,_y:integer):boolean;virtual; Procedure Move(_dx,_dy:Integer); Destructor Done; end; TCircle=object(TPoint) r:Integer; Constructor Init(_x,_y,_c,_r:integer); Procedure Show;virtual; Procedure Hide;virtual; Function PointIn(_x,_y:integer):boolean;virtual; end; TLine=object(TPoint) dx,dy:integer; Constructor Init(_x,_y,_c,_dx,_dy:integer); Procedure Show;virtual; Procedure Hide;virtual; Function PointIn(_x,_y:integer):boolean;virtual; end; TRectangle=object(TLine) Constructor Init(_x,_y,_c,_dx,_dy:integer); Procedure Show;virtual; Procedure Hide;virtual; Function PointIn(_x,_y:integer):boolean;virtual; end; {--------------------------------------------------------} Implementation {--------------------------------------------------------} Uses Graph,crt; {--------------------------------------------------------} Constructor TPoint.Init; begin x:=_x; y:=_y; c:=_c; end; Procedure TPoint.Show; begin Putpixel(x,y,c); end; Procedure TPoint.Hide; begin Putpixel(x,y,0); end; Procedure TPoint.Move; begin Hide; x:=x+_dx; y:=y+_dy; Show; end; Destructor TPoint.Done; begin end; Function TPoint.PointIn; Begin if (x=_x) and (y=_y) then PointIn:=true else PointIn:=false; end; {--------------------------------------------------------} Constructor TCircle.Init; begin Inherited Init(_x,_y,_c); r:=_r; end; Procedure TCircle.Show; begin setcolor(c); Circle(x,y,r); end; Procedure TCircle.Hide; begin setcolor(0); Circle(x,y,r); end; Function TCircle.PointIn; begin if {(x-_x)*(x-_x)+(y-_y)*(y-_y)<=r*r} ((_x>x-r) and (_x<x+r) and (_y>y-r) and (_y<y+r)) then PointIn:=true else PointIn:=false; end; {--------------------------------------------------------} Constructor TLine.Init; begin Inherited Init(_x,_y,_c); dx:=_dx; dy:=_dy; end; Procedure TLine.Show; begin setcolor(c); Line(x,y,x+dx,y+dy); end; Procedure TLine.Hide; begin setcolor(0); Line(x,y,x+dx,y+dy); end; Function TLine.PointIn; var i:integer; begin if (x<=_x) and (y<=_y) and (x+dx>=_x) and (y+dy>=_y) {IV} or (x<=_x) and (y>=_y) and (x+dx>=_x) and (y+dy<=_y) {I} or (x>=_x) and (y>=_y) and (x+dx<=_x) and (y+dy<=_y) {II} or (x>=_x) and (y<=_y) and (x+dx<=_x) and (y+dy>=_y) {III} then PointIn:=true else PointIn:=false; end; {--------------------------------------------------------} Constructor TRectangle.Init; begin Inherited Init(_x,_y,_c,_dx,_dy); end; Procedure TRectangle.Show; begin setcolor(c); Rectangle(x,y,x+dx,y+dy); end; Procedure TRectangle.Hide; begin setcolor(0); Rectangle(x,y,x+dx,y+dy); end; Function TRectangle.PointIn; begin if (x<=_x) and (y<=_y) and (x+dx>=_x) and (y+dy>=_y) {IV} or (x<=_x) and (y>=_y) and (x+dx>=_x) and (y+dy<=_y) {I} or (x>=_x) and (y>=_y) and (x+dx<=_x) and (y+dy<=_y) {II} or (x>=_x) and (y<=_y) and (x+dx<=_x) and (y+dy>=_y) {III} then PointIn:=true else PointIn:=false; end; {--------------------------------------------------------} end. |
Спасибо, ребят большое...
Не поздно... пока сижу разбираюсь... Сдавать видимо уже буду в январе... СПАСИБО!!!!! |
Shelby
Только не проще ли было не писать на форуме, а обратиться к 4-му курсу!! |
Olga
читай всю тему она не местная |
Экая ностальгия, сколько лет назад эти классы делались ... |
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете вкладывать файлы Вы можете скачивать файлы |