Главная страница
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.019 c
3-1175245543
Cara
2007-03-30 13:05
2007.06.24
Таблицы DBF.


10-1134133062
LORN
2005-12-09 15:57
2007.06.24
ексель->панель инструментов


2-1180876453
koha
2007-06-03 17:14
2007.06.24
Определение состояния процесса


6-1164959474
Olban
2006-12-01 10:51
2007.06.24
Indy 10 и TidTCPClient


2-1180597669
Abcdef123
2007-05-31 11:47
2007.06.24
TDBGrid. Прошу прокомментировать ситуацию и дать совет.