Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Delphi/DrawLine

16K
14 декабря 2006 года
Padsh
34 / / 10.12.2006
дамы и госпада...*постучал тапком по трибуне, откашлялся*....Можно вопрос, Почиму допустим
 
Код:
form1.Canvas.Drawline(*,*,*);


Рисует не в каждой точке а через какие-то странные расстяния, бедная порабола на себя не похожа, так отдаленное сходство...и как можно лучше прорисовать по точкам или по пикселям.....
303
14 декабря 2006 года
makbeth
1.0K / / 25.11.2004
Мож дело в том, что DrawLine не отрисовывает последнюю (конечную) точку линии?
16K
14 декабря 2006 года
Padsh
34 / / 10.12.2006
да там вообще.....я пускаю это все в цикле прорисовывая график....а он там через промежутки отрисовывает....даже на график не похоже....может есть другой путь, как нарисовать красиво это все?
547
14 декабря 2006 года
Hydra
488 / / 20.06.2006
а canvas.pen не смотрел?
16K
14 декабря 2006 года
Padsh
34 / / 10.12.2006
хм....не додумался....Это по пиксельно рисует?
302
14 декабря 2006 года
Sagittarius
648 / / 12.04.2003
Цитата: Padsh
да там вообще.....я пускаю это все в цикле прорисовывая график....а он там через промежутки отрисовывает....даже на график не похоже....может есть другой путь, как нарисовать красиво это все?


Попробуй использовать MoveTo и LineTo. Проблема может быть в стиле пера. Сделай Canvas.Pen.Style := psSolid;

3.2K
14 декабря 2006 года
Sania
186 / / 28.10.2006
Цитата: Sagittarius
Попробуй использовать MoveTo и LineTo. Проблема может быть в стиле пера. Сделай Canvas.Pen.Style := psSolid;


psSolid стоит по умолчанию, а LineTo согласен, еще для "крутых графиков"
canvas.Pixels[];
canvas.Polyline();
canvas.PolyBezier();

16K
14 декабря 2006 года
Padsh
34 / / 10.12.2006
2 Sagittarius

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;


В результате мне рисуют нечто подобное на параболу....в стиле абстракционизьма....вот голову ломаю, может в цикле ошибки?

//
Лан понял я все, ушОл делЬфю читать.....пока в /dev/null не послали
302
18 декабря 2006 года
Sagittarius
648 / / 12.04.2003
1. Метод Canvas.Draw предназначен для копированию в канву изображений и других графических объектов.
2. В цикле должен быть только оператор Canvas.LineTo
3. Оператор Camvas.MoveTo вынеси за цикл (перед циклом) и перемещай с помощью него перо в начальную точку параболы (когда i = 0 ), соответственно, цикл можешь сделать с 1 по 500.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог