
19.05.2009, 06:12
|
|
Участник форума
Регистрация: 25.05.2007
Сообщений: 290
С нами:
9980798
Репутация:
435
|
|
для MRAK9
Проверить всю правильность кода возможности нету так как моя видиокарта почему-то не хочет работать с GRAPH в режиме совместимости. Можно конечно было сделать и через VGA256, но так уж принято чертить графики через GRAPH.
y:=x*x*x*x-13*x*x+36; - оставила так как есть, ибо не хочется заморачиваться на преоброзовании и округлении типов. Если будет необходимость работать с real и считать степени по человечески то вот формула y:=exp(ln(X) *4)-13*Sqr(x)+36;
Исходный код:
PHP код:
program kl;
uses Graph;
var dv,mv,i,x,y,ta,tb: integer;
begin
write('vvedite pervoe znachenie diaposona: ');
read(ta);
write('vvedite vtoroe znachenie diaposona: ');
read(tb);
DV:=Detect;
InitGraph(DV,MV,'C:\TP7\UNITS\GRAPH');
for i:=ta to tb do
begin
x:=i;
y:=x*x*x*x-13*x*x+36;
LineTo(x,y);
end;
read(x);
ClozeGraph;
end.
Если кажется что линиями слишком грубо, то можете сделать через точки, только не забывайте преобразовывать типы:
PHP код:
x:=ta;
While x<=tb do
begin
y:=exp(ln(X) *4)-13*Sqr(x)+36;
...
...
PutPixel(x, y, 15);
x:=x+ 0.01;
end;
Процедуры и функции модуля CRAPH
Процедуры.
* Arc (X,Y:Integer; U1, U2, R:Word)
Строит дугу окружности текущим цветом с текущими параметрами линии. X, Y – координаты центра дуги; U1 – угол до начальной точки дуги, отсчитываемый против часовой стрелки от горизонтальной оси, направленной с лева на право; U2 – угол до конечной точки дуги, отсчитываемый так же, как U1; R – радиус дуги.
* Bar (X1, Y1, X2, Y2:Integer)
Строит прямоугольник, закрашенный текущим цветом с использованием текущего стиля (орнамента, штриховки). X1, Y1, X2, Y2 – координаты левого верхнего и правого нижнего углов прямоугольника.
* Bar3D (X1, Y1, X2, Y2:Integer; Glubina: Word; Top:Boolean)
Строит параллелепипед, используя текущий стиль и цвет. X1, Y1, X2, Y2 – координаты левого верхнего и правого нижнего углов передней грани; Glubina – ширина боковой грани (отсчитывается по горизонтали); Top – признак включения верхней грани (если True – верхняя грань вычерчивается, False – не вычерчивается).
* Circle (X, Y: Integer; R: word)
Рисует текущим цветом окружность радиуса R с центром в точке (X, Y).
* ClearDevice
Очищает графический экран, закрашивает его в цвет фона.
* ClearViewPort
Очищает выделенное графическое окно, закрашивает его в цвет фона.
* CloseGraph
Закрытие видеорежима. Когда все запланированные графические работы выполнены, необходимо выйти из графического режима. Это делается с помощью не имеющей параметров процедуры ClozeGraph. В процессе выполнения эта процедура освобождает память, распределенную под драйверы графики, файлы шрифтов и промежуточные данные, и восстанавливает режим работы адаптера в то состояние, в котором он находился до выполнения инициализации системы.
* Ellipse (X, Y: Integer; U1, U2, XR, YR: Word)
Рисует дугу эллипса текущим цветом. X, Y – координаты центра эллипса; U1, U2 – углы до начальной и конечной точек дуги эллипса (см. процедуру Arc); XR, XY – горизонтальная и вертикальная полуоси эллипса.
* Fill Ellipse (X, Y: Integer; U1, U2, XR, YR: Word)
Рисунт заштрихованный эллипс, используя X, Y как центр и XR, YR как горизонтальную и вертикальную полуоси эллипса.
* FillPoly (N: Word; Var PolyPoints)
Рисует и штрихует многоугольник, содержащий N вершин с координатами в поле PolyPoints.
* InitGraph (Var Driver, Mode:Integer; Path: String)
InitGraph(DV,MV,'C:\TP7\UNITS\GRAPH'); Организует переход в графический режим. Переменные Driver и Mode содержат тип графического драйвера и его режим работы. Третий параметр определяет маршрут поиска графического драйвера. Если строка пустая (т.е. равна ’’), считается, что драйвер находится в текущем каталоге. Смотрите у Вас где находится файл GRAPH.TPU
* Line (X1, Y1, X2, Y2:Integer)
Рисует линию от точки X1, Y1, до точки X2, Y2.
* LineTo (X,Y:Integer)
Рисует линию от текущего указателя к точке X, Y.
* MoveTo (X,Y:Integer)
Смещает текущий указатель к точке X, Y.
* OutTextXY (X,Y:Integer; TextString: String)
Выводит текст в заданное место экрана.
* PieSlice (X,Y:Integer; U1, U2, Radius: Word)
Строит сектор круга, закрашенный текущей штриховкой и цветом заполнения. X, Y – координаты центра сектора круга; U1 и U2 – начальный и конечный углы сектора, отсчитываемые против часовой стрелки от горизонтальной оси, направленной в право; Radius – радиус сектора.
* PutPixel (X,Y:Integer; Color: Word)
Выводит точку цветом Color с координатами X, Y.
* Rectangle (X1, Y1, X2, Y2)
Рисует контур прямоугольника, используя текущий цвет и тип линий. X1, Y1 – координаты левого верхнего угла прямоугольника; X2, Y2 - координаты левого правого нижнего угла прямоугольника.
* Sector (X, Y: Integer; U1, U2, XR, YR: Word)
Рисует и штрихует сектор эллипса радиусом XR, YR с центром в X, Y от начального угла U1 к конечному углу U2.
* SetBkColor (Color: Word)
Устанавливает цвет фона.
* SetColor (Color: Word)
Устанавливает основной цвет рисования.
* SetFillStyle (Pattern, Color: Word)
Устанавливает образец штриховки и цвета.
* SetLineStyle (LineStyle, Pattern, Thickness: Word)
Устанавливает толщину и цвет линии.
* SetTextStyle (Font, Direction, CharSize: Word)
Устанавливает текущий шрифт, направление (горизонтальное или вертикальное) и размер текста.
* SetViewPort (X1, Y1, X2, Y2:Integer; ClipOn: Boolean)
Устанавливает прямоугольное окно на графическом экране. Параметр ClipOn определяет “отсечку” элементов изображения, не умещающихся в окне.
Функции.
GetMaxX и GetMaxY
Возвращает значения максимальных координат экрана в текущем режиме работы соответственно по горизонталь и вертикали.
* GraphResult
Возвращает значение GrOk, соответствующее коду 0, если все графические операции программы выполнились без ошибок, или возвращает числовой код ошибки (от -1 до -14).
|
|
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|