Delphi/DrawLine
Код:
form1.Canvas.Drawline(*,*,*);
Рисует не в каждой точке а через какие-то странные расстяния, бедная порабола на себя не похожа, так отдаленное сходство...и как можно лучше прорисовать по точкам или по пикселям.....
Мож дело в том, что DrawLine не отрисовывает последнюю (конечную) точку линии?
да там вообще.....я пускаю это все в цикле прорисовывая график....а он там через промежутки отрисовывает....даже на график не похоже....может есть другой путь, как нарисовать красиво это все?
а canvas.pen не смотрел?
хм....не додумался....Это по пиксельно рисует?
Цитата: Padsh
да там вообще.....я пускаю это все в цикле прорисовывая график....а он там через промежутки отрисовывает....даже на график не похоже....может есть другой путь, как нарисовать красиво это все?
Попробуй использовать MoveTo и LineTo. Проблема может быть в стиле пера. Сделай Canvas.Pen.Style := psSolid;
Цитата: Sagittarius
Попробуй использовать MoveTo и LineTo. Проблема может быть в стиле пера. Сделай Canvas.Pen.Style := psSolid;
psSolid стоит по умолчанию, а LineTo согласен, еще для "крутых графиков"
canvas.Pixels[];
canvas.Polyline();
canvas.PolyBezier();
MoveTo и LineTo.юзал....хорошо рисует когда нужно прямую изобразить но не пораболу.....(может у меня ошипбка в ДНК?)
Код:
for i:= 0 to 500 do
begin
iTemp3 := iTemp1*i*i - iTemp2*i + iTemp4;
Form1.Canvas.Pen.Color := clblack;
Canvas.Pen.Style := psSolid;
// Form1.Canvas.Draw(i+250,iTemp3 - 300); <--------тут я не понял какой третий параметр
Form1.Canvas.MoveTo(i+250,iTemp3 - 300);
{//250 т.к. смещение идет, координатная ось начинается тама.....в одной части рисует, но никак не во второй....(с этим я разберусь)}
Form1.Canvas.LineTo(i+250,iTemp3 - 301);
end;
begin
iTemp3 := iTemp1*i*i - iTemp2*i + iTemp4;
Form1.Canvas.Pen.Color := clblack;
Canvas.Pen.Style := psSolid;
// Form1.Canvas.Draw(i+250,iTemp3 - 300); <--------тут я не понял какой третий параметр
Form1.Canvas.MoveTo(i+250,iTemp3 - 300);
{//250 т.к. смещение идет, координатная ось начинается тама.....в одной части рисует, но никак не во второй....(с этим я разберусь)}
Form1.Canvas.LineTo(i+250,iTemp3 - 301);
end;
В результате мне рисуют нечто подобное на параболу....в стиле абстракционизьма....вот голову ломаю, может в цикле ошибки?
//
Лан понял я все, ушОл делЬфю читать.....пока в /dev/null не послали
2. В цикле должен быть только оператор Canvas.LineTo
3. Оператор Camvas.MoveTo вынеси за цикл (перед циклом) и перемещай с помощью него перо в начальную точку параболы (когда i = 0 ), соответственно, цикл можешь сделать с 1 по 500.