![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как нарисовать кривую Безье (или любую другую)?
zorik © (2006-10-12 16:28:00)Интересует именно вывод на екран, а не расчет. Рисовать короткими ламаными отрезками, дугами или еще как? Попиксельный вывод думаю будет долго работать
Jeer (2006-10-17 18:33:00) [1]palva © (17.10.06 17:55) [9]
Вот также и древние вручную считали положение планет, всякие ряды и иные физические реалии и математические абстракции:)
palva (2006-10-17 17:55:00) [2]Пишем рекурсивную процедуру "Рисуем кривую Безье по четырем точкам 1 2 3 4"
Если расстояния между точек 1 2 3 4 сравнимы с расстояниями между пикселями, то просто рисуем ломаную 1234.
В противном случае
12 середина отрезка 1 2
23 середина отрезка 2 3
34 середина отрезка 3 4
123 середина отрезка 12 23
234 середина отрезка 23 34
1234 середина отрезка 123 234
Рисуем кривую Безье по четырем точкам 1 12 123 1234
Рисуем кривую Безье по четырем точкам 1234 234 34 4
@!!ex (2006-10-13 15:59:00) [3]
> Vovan#1 (12.10.06 20:52) [6]
Читать внимательно первый пост:
> Интересует именно вывод на экран, а не расчет.
MBo (2006-10-13 06:42:00) [4]>Покажи, как нарисовать с помощью тех методов канвы кривую Безье.
Нарисовать-то можно с помощью рекурсивного деления кривой пополам, пока участки не станут достаточно плоскими (оценивать можно по расстоянию от середины отрезка кривой до хорды, или в целых числах - по площади ограничивающего четырехугольника), только обычно незачем, если есть готовый графический примитив
Vovan#1 (2006-10-12 20:52:00) [5]>
MoveTo
LineTo
Попиксельно будет криво. Лучше линий пока ничего не придумали.
Ну, тебя за язык не тянули. Покажи, как нарисовать с помощью тех методов канвы кривую Безье.
@!!ex (2006-10-12 20:48:00) [6]
> zorik © (12.10.06 16:28)
> Vovan#1 (12.10.06 19:30) [4]
MoveTo
LineTo
Попиксельно будет криво. Лучше линий пока ничего не придумали.
Vovan#1 (2006-10-12 19:30:00) [7]Да, хорош...
...
PolyBezier (public) Draws a set of Bezier curves.
PolyBezierTo (public) Draws a set of Bezier curves and updates the value of PenPos.
...
MBo (2006-10-12 17:06:00) [8]>Vovan#1
А какие у TCanvas есть методы?
Vovan#1 (2006-10-12 17:03:00) [9]2 MBo:
Что именно вы посоветовали автору вопроса?
TCanvas Class
TCanvas provides an abstract drawing space for objects that must render their own images.
Unit
Graphics
Syntax
[Delphi] type TCanvas = class (Classes.TPersistent);
Description
Use TCanvas as a drawing surface for objects that draw an image of themselves. Standard window controls such as edit controls or list boxes do not require a canvas, as they are drawn by the system.
TCanvas provides properties, events and methods that assist in creating an image by
Specifying the type of brush, pen and font to use.
Drawing and filling a variety of shapes and lines.
Writing text.
Rendering graphic images.
Enabling a response to changes in the current image.
TCanvas has two descendants, TControlCanvas and TMetafileCanvas, which assist in drawing images of controls and in creating metafile images for objects.
Hierarchy
System.TObject
Classes.TPersistent
Related Information
Graphics.TMetafileCanvas
MBo (2006-10-12 16:37:00) [10]А в справку по TCanvas смотрел?