Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.06.24;
Скачать: CL | DM;

Вниз

Как нарисовать кривую Безье (или любую другую)?   Найти похожие ветки 

 
zorik ©   (2006-10-12 16:28) [0]

Интересует именно вывод на екран, а не расчет. Рисовать короткими ламаными отрезками, дугами или еще как? Попиксельный вывод думаю будет долго работать


 
MBo ©   (2006-10-12 16:37) [1]

А в справку по TCanvas смотрел?


 
Vovan#1   (2006-10-12 17:03) [2]

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 17:06) [3]

>Vovan#1
А какие у TCanvas есть методы?


 
Vovan#1   (2006-10-12 19:30) [4]

Да, хорош...

...
PolyBezier (public)  Draws a set of Bezier curves.
PolyBezierTo (public)  Draws a set of Bezier curves and updates the value of PenPos.
...


 
@!!ex ©   (2006-10-12 20:48) [5]


> zorik ©   (12.10.06 16:28)  
> Vovan#1   (12.10.06 19:30) [4]

MoveTo
LineTo


Попиксельно будет криво. Лучше линий пока ничего не придумали.


 
Vovan#1   (2006-10-12 20:52) [6]

>

MoveTo
LineTo

Попиксельно будет криво. Лучше линий пока ничего не придумали.


Ну, тебя за язык не тянули. Покажи, как нарисовать с помощью тех методов канвы кривую Безье.


 
MBo ©   (2006-10-13 06:42) [7]

>Покажи, как нарисовать с помощью тех методов канвы кривую Безье.

Нарисовать-то можно с помощью рекурсивного деления кривой пополам, пока участки не станут достаточно плоскими (оценивать можно по расстоянию от середины отрезка кривой до хорды, или в целых числах - по площади ограничивающего четырехугольника), только обычно незачем, если есть готовый графический примитив


 
@!!ex ©   (2006-10-13 15:59) [8]


> Vovan#1   (12.10.06 20:52) [6]

Читать внимательно первый пост:


> Интересует именно вывод на экран, а не расчет.


 
palva ©   (2006-10-17 17:55) [9]

Пишем рекурсивную процедуру "Рисуем кривую Безье по четырем точкам 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


 
Jeer ©   (2006-10-17 18:33) [10]

palva ©   (17.10.06 17:55) [9]

Вот также и древние вручную считали положение планет, всякие ряды и иные физические реалии и математические абстракции:)



Страницы: 1 вся ветка

Текущий архив: 2007.06.24;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.02 c
4-1168940795
Невский
2007-01-16 12:46
2007.06.24
Весы Bizerba


11-1163603498
SysError
2006-11-15 18:11
2007.06.24
http://www.kolnmck.ru/files/242a/kol_mck.7z


8-1160133927
Korneley
2006-10-06 15:25
2007.06.24
Запись с одного источника в несколько звуковых потоков


1-1177569767
StriderMan
2007-04-26 10:42
2007.06.24
List из TNotifyEvent ов


15-1179996866
gray_falcon
2007-05-24 12:54
2007.06.24
Дайте линк на самоучитель