graphics output |
1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!
graphics output |
turbo7 |
Сообщение
#1
|
Гость |
I have a program that outputs some graphics to screen using graph.tpu(plot,dots, thise sort of things). I need to print thise output. Is there some way to output graphics to file?
|
GLuk |
Сообщение
#2
|
Профи Группа: Пользователи Сообщений: 775 Пол: Мужской Репутация: 0 |
Of course есть. А ты англичанин что-ли?? ;)
|
turbo7 |
Сообщение
#3
|
Гость |
No. I just don't have kyrrilick fonts and prefere good english 2 poor russian.
|
AlaRic |
Сообщение
#4
|
... Группа: Пользователи Сообщений: 1 347 Пол: Мужской Репутация: 3 |
Вот и весь разговор 8)
|
JTG |
Сообщение
#5
|
Гость |
Ну например сделай скрин активного окна (насколько я понимаю, ты все-таки в винде сидишь), потом в пэйнте чуть инвертни цвета и печатай.
|
GLuk |
Сообщение
#6
|
Профи Группа: Пользователи Сообщений: 775 Пол: Мужской Репутация: 0 |
Я так понял тебе нужно в файл слить инфу с экрана?!
Дык: 1. Выложи исходник. 2. Или хотя бы скажи номер видеорежима... |
turbo7 |
Сообщение
#7
|
Гость |
номер видеорежима? Whats that? :-[
исходник: uses crt,graph; var i,j,n,x0,y0,xend,yend,xbeg,ybeg,grd,grm:integer; temp,sumx,sumxx,sumy,sumyy,sumxy,a,al,bl:real; x,y: array[1..500] of integer; begin clrscr; grD:= Detect; InitGraph(grD, grM,' '); randomize; n:=200; sumx:=0; sumxx:=0; sumy:=0; sumyy:=0; sumxy:=0; {imitation of sample group} for i:=1 to n do begin x[i]:=random(170)+1; y[i]:=random(150); end; for i:=1 to n do begin sumx:=sumx+x[i]; sumy:=sumy+y[i]; sumxx:=sumxx+x[i]*x[i]; sumyy:=sumyy+y[i]*y[i]; sumxy:=sumxy+x[i]*y[i]; end; A:=n*sumxx-sqr(sumx); al:=1/a*(n*sumxy-sumy*sumx); bl:=1/a*(sumxx*sumy-sumxy*sumx); outtext('the minimum square method'); y0:=gety+250; x0:=getx-100; line(x0,y0,x0+200,y0); line(x0,y0,x0,y0-200); outtextxy(x0-15,y0-180,'y'); outtextxy(x0+180, y0+10, 'x'); for i:=1 to n do putpixel(x[i]+x0,-y[i]+y0, magenta); xbeg:=x0; ybeg:=y0-round(bl); xend:=x0+170; {the biggest value of x that can be} yend:=y0-round(al*xend+bl); line(xbeg,ybeg,xend,yend); readln; end. |
GLuk |
Сообщение
#8
|
Профи Группа: Пользователи Сообщений: 775 Пол: Мужской Репутация: 0 |
Оооо, вот и по-русски научился! ;)
Для записи сгенеренного тобой растра в файл нужно всего лишь добавить несколько строк (выделены слэшами): Код uses crt,graph; var i,j,n,x0,y0,xend,yend,xbeg,ybeg,grd,grm:integer; temp,sumx,sumxx,sumy,sumyy,sumxy,a,al,bl:real; x,y: array[1..500] of integer; \\\\\\\\\\\\\\ P:Pointer; Sz:Word; F:File; ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// begin clrscr; grD:= Detect; InitGraph(grD, grM,' '); randomize; n:=200; sumx:=0; sumxx:=0; sumy:=0; sumyy:=0; sumxy:=0; {imitation of sample group} for i:=1 to n do begin x[i]:=random(170)+1; y[i]:=random(150); end; for i:=1 to n do begin sumx:=sumx+x[i]; sumy:=sumy+y[i]; sumxx:=sumxx+x[i]*x[i]; sumyy:=sumyy+y[i]*y[i]; sumxy:=sumxy+x[i]*y[i]; end; A:=n*sumxx-sqr(sumx); al:=1/a*(n*sumxy-sumy*sumx); bl:=1/a*(sumxx*sumy-sumxy*sumx); outtext('the minimum square method'); y0:=gety+250; x0:=getx-100; line(x0,y0,x0+200,y0); line(x0,y0,x0,y0-200); outtextxy(x0-15,y0-180,'y'); outtextxy(x0+180, y0+10, 'x'); for i:=1 to n do putpixel(x[i]+x0,-y[i]+y0, magenta); xbeg:=x0; ybeg:=y0-round(bl); xend:=x0+170; {the biggest value of x that can be} yend:=y0-round(al*xend+bl); line(xbeg,ybeg,xend,yend); //////////////////////////////////////////////////////////////////////////////////////////////////////////////// Sz:=ImageSize(0,0,300,280); GetMem(P,Sz); GetImage(0,0,300,280,P^); Assign(F,'image.dat'); ReWrite(F,1); BlockWrite(F,P^,Sz); Close(F); {-------------------------} Assign(F,'image.dat'); Reset(F,1); BlockRead(F,P^,Sz); SetTextStyle(TriplexFont,HorizDir,4); OutTextXY(30,300,'Save image to file...press any key'); ReadLn; ClearDevice; PutImage(30,20,P^,1); OutTextXY(30,300,'Image was read from file...'); FreeMem(P,Sz); readln; end. \\\\\\\\\\\\\\ P.S.: А номер видеорежима это и есть номер видеорежима; каждый режим типа характеризуется своим разрешением, глубиной цвета, графический или текстовый и все такое... |
turbo7 |
Сообщение
#9
|
Гость |
Цитата Оооо, вот и по-русски научился! Copy pasty works fine. thanx for the advice. Ok, now I got that image.dat file but I can't open it with any program. and I need thise image 2 b printed. Oooh, I feel so dumb... :'( |
GLuk |
Сообщение
#10
|
Профи Группа: Пользователи Сообщений: 775 Пол: Мужской Репутация: 0 |
ДыК, фишка-то в том, что это просто ДАМП экрана...
Завтречка напишу, чтобы сохраняло в формате BMP или PCX. :) |
turbo7 |
Сообщение
#11
|
Гость |
Can I see thise imagr in Dos? Through nc or something?
|
Булат Шакиров |
Сообщение
#12
|
Гость |
Нет. Только Вашей программой.
|
turbo7 |
Сообщение
#13
|
Гость |
hm... So how can I send it to printer?
|
GLuk |
Сообщение
#14
|
Профи Группа: Пользователи Сообщений: 775 Пол: Мужской Репутация: 0 |
Кинул исходник на мыло...
|
Текстовая версия | 23.12.2024 19:56 |