Приветствую Вас Гость | RSS

Меню сайта

Реклама

Категории раздела
Bitmap [50]
Canvas [0]
DirectX и DelphiX [39]
GIF [3]
ICO [24]
JPEG [14]
MetaFile [6]
OpenGL [9]
ScreenSaver и ScreenMate [13]
Векторная графика [2]
Графика [37]
Изображения [0]
Картография [6]
Компоненты и Графика [0]
Создание игр [17]
Цвета и Палитра [0]
Шрифты [0]

Наш опрос
Какие компоненты добавлять больше?
Всего ответов: 49

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Форма входа

Главная » Статьи » Графика и Игры » Графика

Рисование КРИВЫХ в Delphi
PBezierPoint = ^TBezierPoint;
TBezierPoint = record
X, Y: double; // основной узел
Xl, Yl: double; // левая контрольная точка
Xr, Yr: double; // правая контрольная точка
end;

// P1 и P2 - две точки TBezierPoint, расположенные между 0 и 1:
// когда t=0 X=P1.X, Y=P1.Y; когда t=1 X=P2.X, Y=P2.Y;

procedure BezierValue(P1, P2: TBezierPoint; t: double; var X, Y: double);
var
t_sq, t_cb, r1, r2, r3, r4: double;
begin
t_sq := t * t;
t_cb := t * t_sq;
r1 := (1 - 3 * t + 3 * t_sq - t_cb) * P1.X;
r2 := (3 * t - 6 * t_sq + 3 * t_cb) * P1.Xr;
r3 := (3 * t_sq - 3 * t_cb) * P2.Xl;
r4 := (t_cb) * P2.X;
X := r1 + r2 + r3 + r4;
r1 := (1 - 3 * t + 3 * t_sq - t_cb) * P1.Y;
r2 := (3 * t - 6 * t_sq + 3 * t_cb) * P1.Yr;
r3 := (3 * t_sq - 3 * t_cb) * P2.Yl;
r4 := (t_cb) * P2.Y;
Y := r1 + r2 + r3 + r4;
end;
Категория: Графика | Добавил: Angel (13.07.2008)
Просмотров: 575 | Рейтинг: 0.0/0
  Delphi Lab   Главная   Регистрация   Вход  
Интересная Цитата

Поиск

Магазин


Copyright MyCorp © 2025 Хостинг от uCoz