Главная страница
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
15-1180093377
DVM
2007-05-25 15:42
2007.06.24
Есть ли хорошие готовые компоненты для SIP телефонии?


8-1159345129
NeyroSpace
2006-09-27 12:18
2007.06.24
Direct show: как узнать возможные частоты кадров у веб камеры?


2-1180699513
interest
2007-06-01 16:05
2007.06.24
только OR, или есть еще способ? (mysql)


2-1180690269
Dominic
2007-06-01 13:31
2007.06.24
Подскажите, помогите!


15-1180034182
flaxe
2007-05-24 23:16
2007.06.24
Срочно Лаба, завтра сдавать, маленьткий вопросик)