Воспроизведения рисунка |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
Воспроизведения рисунка |
plafon |
Сообщение
#1
|
Новичок Группа: Пользователи Сообщений: 17 Репутация: 0 |
Кто нибудь поможет с такой задачей
Написать программу для воспроизведения рисунка, записанного в специальном формате в файле с расширением “vec”. Рисунок поместить в центр экрана. Под рисунком вывести имя файла, включая путь. Графическое изображение представляет собой набор графических примитивов: точек, отрезков, прямоугольников и эллипсов различных цветов. Прямоугольники и эллипсы могут иметь заливку. Изображение имеет 16 цветов (коды цветов 0-15). Файл содержит записи, каждая из которых состоит из фиксированного набора полей, описывающих графический примитив. Все координаты указываются в пикселях относительно левого верхнего угла изображения, имеющего координаты (0,0). Оси направлены: 0X - вправо, 0Y - вниз. Графические примитивы отображаются относительно текущей позиции курсора, которая может быть изменена специальной командой |
Dark |
Сообщение
#2
|
Знаток Группа: Пользователи Сообщений: 408 Пол: Мужской Репутация: 3 |
Код Uses Graph,Crt; Type TRec=Record Code:Byte; x:Integer; y:Integer; Color:Byte End; Procedure DisplayFile(FileName:String); Var f:File Of TRec; r:TRec; Begin Assign(f,FileName); Reset(f); MoveTo(0,0); While Not Eof(f) Do Begin Read(f,r); Case r.Code Of 0: If (r.Color And $80) <> 0 Then Begin SetBkColor(r.Color And $0F); ClearViewPort End; 1: MoveTo(r.x,r.y); 2: PutPixel(r.x,r.y,r.Color And $0F); 3: Begin SetColor(r.Color And $0F); LineTo(r.x,r.y) End; 4: If (r.Color And $80) <> 0 Then Begin SetFillStyle(SolidFill,r.Color And $0F); Bar(GetX,GetY,r.x,r.y) End Else Begin SetColor(r.color And $0F); Rectangle(GetX,GetY,r.x,r.y) End; 5: If (r.Color And $80) <> 0 Then Begin SetFillStyle(SolidFill,r.Color And $0F); FillEllipse(GetX,GetY,r.x,r.y) End Else Begin SetColor(r.Color And $0F); Ellipse(GetX,GetY,r.x,r.y,0,360); {Вот тут вроде ещё углы начала и конца указать надо, но я точно не помню} End; 6: Begin SetFillStyle(SolidFill,r.Color Shr 4); FloodFill(r.x,r.y,r.Color And $0F) End End; Close(f) End; end; Var r,m:Integer; s:String; Begin Write('Enter FileName: '); ReadLn(s); r:=Detect; InitGraph(r,m,''); DisplayFile(s); ReadKey; RestoreCRTMode End. -------------------- - Где я?
- Во тьме. - В какой тьме? - Во тьме твоего мозга. |
Текстовая версия | 4.05.2024 21:16 |