![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#3
|
||||
|
||||
![]() Для начала тебе нужно реализовать парсер для вычисления твоей формулы, далее тебе необходимо построить декартову систему координат.
Код:
procedure LineToXY(x,y:single;_color:TColor); var Temp:TColor; begin Temp:=Form1.imgGraph.Canvas.Pen.Color; Form1.imgGraph.Canvas.Pen.Color:=_color; Form1.imgGraph.Canvas.LineTo(Trunc(ImageCenter.X+(x*Zoom)),Trunc(ImageCenter.y-(y*Zoom))); Form1.imgGraph.Canvas.Pen.Color:=Temp; end; procedure MoveToXY(x,y:single); begin Form1.imgGraph.Canvas.MoveTo(Trunc(ImageCenter.X+(x*Zoom)),Trunc(ImageCenter.Y-(y*Zoom))); end; Код:
if Form1.cbDrawGrid.Checked Then begin For X:=-10 to 10 Do begin MoveToXY(X,-10); LineToXY(x,10,clSilver); end; For Y:=-10 to 10 Do begin MoveToXY(-10,Y); LineToXY(10,Y,clSilver); end; end; MoveToXY(-10,0); LineToXY(10,0,clRed); MoveToXY(0,-10); LineToXY(0,10,clLime); DrawPointer(10,0,True,clRed); DrawPointer(0,10,False,clLime); for X := -10 to 10 do Begin MoveToXY(X,-0.05); LineToXY(X,0.05,clRed); TextToXY(X,-0.1,IntToStr(X)); End; for Y := -10 to 10 do Begin If Y=0 Then Continue; MoveToXY(-0.05,Y); LineToXY(0.05,Y,clLime); TextToXY(0.1,Y,IntToStr(Y)); End; Вот в принципе и все, сам же парсер можеш найти на этом сайте в исходниках. — Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |