Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для мобильных телефонов > MidletPascal > Библиотеки

Ответ
 
Опции темы
Старый 12.12.2009, 13:41   #1
odd
Мастер
 
Аватар для odd
 
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений
(для 713 пользователей)
Lib_bezier - Рисование кривой Безье

Библиотека для рисования кривой Безье по координатам трех точек.

DrawBezier(x1: integer; y1: integer; x2: integer; y2: integer; x3: integer; y3: integer) - Нарисовать кривую Безье по координатам трех точек
x1, y1 - координаты первой точки
x2, y2 - координаты второй точки
x3, y3 - координаты третьей точки
При рисовании используется текущий установленный цвет

Результат работы программы, описанной ниже:


Простейший пример рисования кривой:
Program BezierDemo;
Uses Bezier;
Var 
x1x2x3y1y2y3integer;
Begin

    
// Задаем точки для нормалей
    
x1:=0y1:=0;
    
x2:=100y2:=50;
    
x3:=10y3:=150;
    
    
// Рисуем нормали - так, для прикола
    
SetColor(200200200);
    
DrawLine(x1y1x2y2);
    
DrawLine(x2y2x3y3);
    
SetColor(25500);

    
// Рисуем кривую Безье
    
DrawBezier(x1y1x2y2x3y3);
    
    
// Перерисовка экрана и ждем 5 сек
    
RepaintDelay(5000);
    
End
Миниатюры
Нажмите на изображение для увеличения
Название: screen01.png
Просмотров: 1423
Размер:	81.5 Кб
ID:	8523  
Вложения
Тип файла: zip Lib_bezier.zip (844 байт, 602 просмотров)
(Offline)
 
Ответить с цитированием
Эти 6 пользователя(ей) сказали Спасибо odd за это полезное сообщение:
Bruteo (12.12.2009), impersonalis (12.12.2009), Phantom (12.01.2010), Romanzes (28.02.2010), sidav (30.07.2010), Trazzy (02.01.2010)
Старый 13.12.2009, 14:40   #2
cherepets
Бывалый
 
Регистрация: 18.08.2009
Сообщений: 745
Написано 146 полезных сообщений
(для 215 пользователей)
Ответ: Lib_bezier - Рисование кривой Безье

крууто...
теперь на теории можно сделать векторный граф редактор на МП, но на практике слишком сложно...
(Offline)
 
Ответить с цитированием
Старый 18.12.2009, 02:16   #3
VotapilD
Оператор ЭВМ
 
Регистрация: 07.12.2009
Адрес: Мытищи
Сообщений: 44
Написано 6 полезных сообщений
(для 6 пользователей)
Ответ: Lib_bezier - Рисование кривой Безье

А есть ли что-то вроде lib_graf? Там... Толщину линий изменить, треугольник нарисовать...
(Offline)
 
Ответить с цитированием
Старый 12.01.2010, 01:21   #4
odd
Мастер
 
Аватар для odd
 
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений
(для 713 пользователей)
Ответ: Lib_bezier - Рисование кривой Безье

Толщину линии можно изменить с помощью вывода нескольких одинаковых кривых с шагом в 1 пиксел вверх или вправо.
(Offline)
 
Ответить с цитированием
Старый 26.07.2010, 20:40   #5
abcdef
Знающий
 
Регистрация: 16.09.2008
Сообщений: 299
Написано 71 полезных сообщений
(для 123 пользователей)
Ответ: Lib_bezier - Рисование кривой Безье

Интересная либа, решил переписать на MP:
procedure drawBezier(x1,y1,x2,y2,x3,y3,count : integer);
var
  i,j,x,y,xx,yy : integer;
begin
  x := x1;
  y := y1;
  for i := 0 to count do
  begin
    j := count-i;
    xx := ((x1 * j * j) + (x2 * 2 * i * j) + (x3 * i * i)) div (count*count);
    yy := ((y1 * j * j) + (y2 * 2 * i * j) + (y3 * i * i)) div (count*count);
    drawLine(x,y,xx,yy);
    x := xx;
    y := yy;
  end;
  drawLine(x,y,x3,y3);
end;


var
  x1, x2, x3, y1, y2, y3: integer;
begin
  // Задаем точки для нормалей
  x1:=0; y1:=0;
  x2:=100; y2:=50;
  x3:=10; y3:=150;
  // Рисуем нормали - так, для прикола
  setColor(200, 200, 200);
  drawLine(x1, y1, x2, y2);
  drawLine(x2, y2, x3, y3);
  setColor(255, 0, 0);
  // Рисуем кривую Безье
  drawBezier(x1, y1, x2, y2, x3, y3,30);
  // Перерисовка экрана и ждем 10 сек
  repaint;
  delay(10000);
end.
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо abcdef за это полезное сообщение:
psih1 (26.07.2010), sidav (30.07.2010)
Старый 26.07.2010, 22:20   #6
psih1
Знающий
 
Аватар для psih1
 
Регистрация: 20.03.2010
Сообщений: 271
Написано 16 полезных сообщений
(для 32 пользователей)
Ответ: Lib_bezier - Рисование кривой Безье

Неплохо
__________________
¯¯¯¯\——-/¯¯¯¯ респект любителям BMX
(Offline)
 
Ответить с цитированием
Старый 29.07.2010, 13:57   #7
psih1
Знающий
 
Аватар для psih1
 
Регистрация: 20.03.2010
Сообщений: 271
Написано 16 полезных сообщений
(для 32 пользователей)
Ответ: Lib_bezier - Рисование кривой Безье

Program PointerTest;
Uses sensor,Bezier; ;
Var 
oxoypxpystateinteger;
Begin
sensor
.init// Инициализация библиотеки
repeat // Бесконечный цикл
state:=pointer_state// Читаем состояние сенсора
if state=1 then // Если нажали, то...
begin
if (ox=0) and (oy=0then
begin
ox
:=pointer_dragged_xoy:=pointer_dragged_y;
end;
// Выясняем куда именно нажали (координаты)
px:=pointer_dragged_xpy:=pointer_dragged_y;

 
// Рисуем кривую Безье
    
DrawBezier(oxoy00pxpy); 
// Запоминаем предыдущую точку для рисования следующей линии
ox:=pxoy:=py;
end;
// Если ничего не нажали - сбрасываем координаты в 0
else begin ox:=0oy:=0;
end;
RepaintDelay(20); // Отрисовка линии и небольшая пауза
until false;
End
в чем ошибка делаю все правильно
__________________
¯¯¯¯\——-/¯¯¯¯ респект любителям BMX
(Offline)
 
Ответить с цитированием
Старый 14.08.2010, 15:41   #8
odd
Мастер
 
Аватар для odd
 
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений
(для 713 пользователей)
Ответ: Lib_bezier - Рисование кривой Безье

Вместо dragged используй pressed.
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Рисование на текстуре Reizel 3D-программирование 1 24.12.2009 19:02
Рисование на меше. Baisangur Blitz3D 1 05.06.2009 14:28
Кривая Безье — красивая вещь zheland 2D-программирование 2 20.07.2008 15:45
Рисование в C++ zheland C++ 8 08.07.2008 18:47


Часовой пояс GMT +4, время: 13:28.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com