forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Библиотеки (http://forum.boolean.name/forumdisplay.php?f=124)
-   -   Lib_gfx (http://forum.boolean.name/showthread.php?t=6068)

odd 02.07.2008 03:26

Lib_gfx
 
Вложений: 1
Библиотека с некоторыми дополнительными графическими функциями.

Функции такие:

SetLineStyle(integer style) - Установка стиля для линий (0 - сплошная, 1 - пунктирная).

DrawTriangle(integer x1, integer y1, integer x2, integer y2, integer x3, integer y3) - Рисование треугольника

FillTriangle(integer x1, integer y1, integer x2, integer y2, integer x3, integer y3) - Закрашивание треугольника

SetDefaultFont - Установка шрифта по умолчанию

DrawString(string s, integer x, integer y, integer anchor) - Рисование строки с привязкой

WizardJIOCb 23.10.2008 22:02

Ответ: Lib_gfx
 
почему я не могу качать прикреплённые файлы, я подтвердил регу же, или сколько то сообщений нужно набрать?

Piligrim 23.10.2008 22:18

Ответ: Lib_gfx
 
ограничения нет. а не получается качать как? ссылки нет? или ошибку даёт?

odd 24.10.2008 06:47

Ответ: Lib_gfx
 
Забей. Если надо скачать - качай сразу сборник библиотек (у меня в подписи к сообщению ссылка). Там есть и все библиотеки и описания к ним.

odd 27.01.2010 18:18

Ответ: Lib_gfx
 
Вложений: 1
В библиотеку добавлена функция рисования линий произвольной толщины.

DrawBoldLine(x1, y1, x2, y2, b).

odd 03.02.2010 15:32

Ответ: Lib_gfx
 
Вложений: 2
Добавил функцию закрашивания произвольной замкнутой поверхности любым цветом.

Fill (x: integer; y: integer: r: integer; g: integer, b: integer)

Попробуйте, например такой пример:
PHP код:

Program IM;
Uses gfx;
begin
    SetColor
(0, 0, 0);
    
DrawLine(5, 5, 150, 10);
    
DrawLine(150, 10, 170, 200);
    
DrawLine(170, 200, 60, 60);
    
DrawLine(60, 60, 5, 105);
    
DrawLine(5, 105, 5, 5);
    
Fill(20, 20, 100, 120, 250);
    
Repaint;
    
Delay(10000);
end. 

Результат можно увидеть на скриншоте.

odd 12.06.2010 17:41

Ответ: Lib_gfx
 
Вложений: 3
Добавилась функция Draw_Transformed(im: image; x1: integer; y1: integer; x2: integer; y2: integer; x3: integer; y3: integer; x4: integer; y4: integer);
для вписывания текстуры в произвольный четырехугольник.
Порядок описывания углов четырехугольника показан на рисунке.

im_zorg 12.06.2010 20:42

Ответ: Lib_gfx
 
Ура, спасибо, odd, респект.

cherepets 16.06.2010 13:15

Ответ: Lib_gfx
 
функция скоростью не блещет. вариант Винта о игре типо дума отменяется, у меня 3 вызова полностью убивают производительность((

есть какой-нить вариант сбить качество и повысить производительность?

odd 18.06.2010 14:19

Ответ: Lib_gfx
 
Для Doom видимо придется писать другой алгоритм, более оптимизированный.
В Doom прямые 1-4 и 2-3 будут параллельны и притом перпендикулярны горизонту.
Это обстоятельство позволит намного сократить количество вычислений.

odd 24.06.2010 00:20

Ответ: Lib_gfx
 
Вложений: 1
По просьбе пользователя Igor добавил ещё одну функцию:

image
Transform(im: image; x1: integer; y1: integer; x2: integer; y2: integer; x3: integer; y3: integer; x4: integer; y4: integer)
Вписывание текстуры im в произвольный четырехугольник.
Порядок описи углов прямоугольника:
x1, y1 - правый нижний угол
x2, y2 - левый нижний угол
x3, y3 - левый верхний угол
x4, y4 - правый верхний угол

Пример:
PHP код:

Program gfx_test;
Uses gfx;
Var 
size: integer;
im: Image;
Begin
    size
:=30;
    
im:=transform(LoadImage('/dollar.png'), 6 * size, 4 * size, 1 * size, 2 * size, 4 * size, 1 * size, 7 * size, 2 * size);
    
DrawImage(im, 5, 5);
    
DrawImage(im, 10, 10);
    
DrawImage(im, 15, 15);
    
Repaint;    
    
Delay(10000);
End. 

Более ускоренный алгоритм для игр типа DOOM пока в процессе.

cherepets 24.06.2010 11:04

Ответ: Lib_gfx
 
ну, польза и в таком виде есть)) например можно с помощью нее из прямоугольных текстур сделать стены для игр с изометрией :)

Igor 24.06.2010 12:15

Ответ: Lib_gfx
 
Цитата:

можно с помощью нее из прямоугольных текстур сделать стены для игр с изометрией :)
Кстати да. Только не вертикальные стены, а наклонные поверхности ландшафта
Огромное спасибо!

odd 25.06.2010 15:38

Ответ: Lib_gfx
 
Но над стенами я всё таки работаю. Нужно будет сделать алгоритм побыстрее.

Rock2roll 06.04.2012 22:56

Ответ: Lib_gfx
 
Уже 2 года работаешь...как все забивают


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

vBulletin® Version 3.6.5.
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Перевод: zCarot