1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
| Кина |
Сообщение
#1
|
|
Гость |
Очень прошу помочь :o
Программа выводит сетку координат и метрическую сетку (разными цветами). Оси должны быть с графическими отметками и названиями. Рисует график y=x*x*x*Ln|x*x-4|. Если нажать мышкой на линию графика - отображаются координаты этой точки. Допускается использовать только вывод точки и получение координат. Возможность распечатки на матричном принтере. |
![]() ![]() |
| volvo |
Сообщение
#2
|
|
Гость |
Кина
Вот процедура... Она будет работать для всех граф. режимов на всех принтерах, воспринимающих систему команд Epson... Код Uses Graph, Printer, Crt; Procedure CopyToPRN( X1, Y1, X2, Y2 : Integer; Bk1, Bk2 : Word; Inverse : Boolean; Mode : Byte ); Var ScanLine : Integer; N1, N2 : Byte; Function ConstructByte( X, Y : Integer ) : Byte; Const Bits : Array[ 0 .. 7 ] Of Byte = ( 128, 64, 32, 16, 8, 4, 2, 1 ); Var P : Word; CByte : Byte; Bit : Byte; YY : Integer; Begin CByte := 0; For Bit := 0 To 7 Do Begin YY := Y + Bit; P := GetPixel( X, YY ); If ( YY <= Y2 ) AND ( P <> Bk1 ) AND ( P <> Bk2 ) Then Inc( CByte, Bits[ Bit ] ); End; ConstructByte := CByte; End; Procedure DoLine; Var XPixel : Integer; PrintByte : Byte; Begin If Mode = 1 Then Write( Lst, #27'L' ) Else Write( Lst, #27'*', Chr( Mode ) ); Write( Lst, Chr( N1 ), Chr( N2 ) ); For XPixel := X1 To X2 Do Begin PrintByte := ConstructByte( XPixel, ScanLine ); If( Inverse ) Then PrintByte := NOT PrintByte; Write( Lst, Chr( PrintByte ) ); End; Write( Lst, #10 ); End; Label Quit; Begin Mode := Mode MOD 7; If Mode In [ 0, 5 ] Then Mode := 4; Write( Lst, #27'3'#24 ); N1 := Lo( Succ( X2 - X1 ) ); N2 := Hi( Succ( X2 - X1 ) ); ScanLine := Y1; While ScanLine < Y2 Do Begin If KeyPressed AND ( ReadKey = #27 ) Then Goto Quit; DoLine; Inc( ScanLine, 8 ); End; Quit: Write( Lst, #27#2 ); End; Begin { Инициализация графики } { Построение изображения } CopyToPrn(0, 0, GetMaxX, GetMaxY, Black, Black, False, 1); { Закрываем графику } End. Сообщение отредактировано: volvo - |
Кина График функции 10.01.2005 19:12
Altair Вот здесь есть шаблон для построения графика.
Тол… 10.01.2005 20:43
Кина Спасибо
Можно пару вопросов?
1. Я никак не могу по… 13.01.2005 14:48
volvo
Пробуем так:
Function getnum(num:word; va… 13.01.2005 15:34
Altair или несовместим компилятор.
В ближайшее время мате… 14.01.2005 13:04
Кина 2 volvo
Сэнкс
2 Oleg_Z
Пересчет координаты точки, … 14.01.2005 17:53
FreeMan
читать координаты и самотужки там рисовать подоби… 14.01.2005 20:37
Altair Кина, для перевода из координат точки на экране в … 14.01.2005 22:36
Кина Oleg_Z Спасибо
Еще мне бы совсем не помешала консу… 19.01.2005 19:14![]() ![]() |
|
Текстовая версия | 21.12.2025 8:25 |