Board.KolibriOS.org

Официальный форум KolibriOS
Текущее время: Пт авг 18, 2017 7:50 am

Часовой пояс: UTC+03:00




Начать новую тему  Ответить на тему  [ 93 сообщения ]  На страницу Пред. 13 4 5 6 7 След.
Автор Сообщение
 Заголовок сообщения: Re: Векторные функции
СообщениеДобавлено: Чт окт 08, 2009 12:56 am 
Не в сети
Just Flooding

Зарегистрирован: Сб янв 06, 2007 2:30 pm
Сообщения: 269
Комментарии ИМХО лучше писать на английском, тем более что латиница во всех кодировках одинаково будет.

offtop:
*Вот думаю, в исходниках MeView комментариев чуть ли не больше чем кода, а всё равно никто даже не заинтересовался...*
offtop_end:


Вернуться к началу
 Заголовок сообщения: Re: Векторные функции
СообщениеДобавлено: Чт окт 08, 2009 1:08 am 
Не в сети
Аватара пользователя

Зарегистрирован: Чт май 19, 2005 4:43 pm
Сообщения: 896
Все, кто реально пишут код, уже понабрали предостаточно проектов.

Коментарии в коде нужны, чтобы в нём мог разобраться и другой программист. Возможно другой программист сможет улучшить код и исправить ошибки(если они есть).

_________________
KolibriOS-перспективная ос!
Kolibri is best operation system in the world!


Вернуться к началу
 Заголовок сообщения: Re: Векторные функции
СообщениеДобавлено: Чт окт 08, 2009 1:51 am 
Nable
Я смотрел твои исходники. Однако на все не хватает времени. Если у тебя есть желание сотрудничать - готов предоставить свои спецификации. Просто реально не успеваю всего делать. Если имеешь желание - пиши в личку. Просто писать на форуме в абсолютно не связанной теме - малопродуктивно.


Вернуться к началу
   
 Заголовок сообщения: Re: Векторные функции
СообщениеДобавлено: Чт окт 08, 2009 7:22 am 
Не в сети
Kernel Developer
Аватара пользователя

Зарегистрирован: Пн мар 20, 2006 10:44 am
Сообщения: 557
IgorA
Русский, англицкий, cp1251 или cp866 - без разницы, думаю справляться с ними все умеют (хотя если строки в cp866 то и коментарии тоже удобно в cp866 использовать).
В первую очередь конечно лучше коментировать библиотеку.


Вернуться к началу
 Заголовок сообщения: Re: Векторные функции
СообщениеДобавлено: Пт окт 09, 2009 1:16 am 
Не в сети
Аватара пользователя

Зарегистрирован: Пн окт 27, 2008 10:10 pm
Сообщения: 740
Немного прокомментировал код библиотеки, и написал еще 1 пример программки.
Думаю можно было и больше комментариев дать, но пока не очень детально.


Вложения:
vectors_comment.7z [11.53 КБ]
123 скачивания
Вернуться к началу
 Заголовок сообщения: Re: Векторные функции
СообщениеДобавлено: Пт июл 02, 2010 5:44 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Пн окт 27, 2008 10:10 pm
Сообщения: 740
Решил сделать библиотеку для работы с 2d буферами, для обработки изображений. Думаю это будет что-то наподобие pixlib, но на asm. Пока возможности ограничены, можно создавать буферы, рисовать в них прямые линии. Также есть функции для рисования (полу)прозрачных изображений поверх других. Возможно в будущем некоторые функции перекочуют из vectors.obj.

В архиве исходные коды библиотеки и 2 программы: 1-я тестовая, 2-я показывает работу с прозрачностью. Вторая программа использует libimg для получения данных изображения в формате rgb.


Вложения:
buf2d_100702.7z [124.04 КБ]
105 скачиваний
Вернуться к началу
 Заголовок сообщения: Re: Векторные функции
СообщениеДобавлено: Сб июл 03, 2010 12:04 am 
Хорошая идея, так можно шрифты реализовать. :-)


Вернуться к началу
   
 Заголовок сообщения: Re: Векторные функции
СообщениеДобавлено: Вт июл 06, 2010 1:24 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Пн окт 27, 2008 10:10 pm
Сообщения: 740
новая версия 06.07.10 - расширены возможности функции buf2d_bit_blt, теперь она может рисовать 32 битные буферы. Добавлены 2 новые функции: buf2d_bit_blt_alpha и buf2d_cruve_bezier. Небольшие изменения в функции buf2d_line.
Mario писал(а):
Хорошая идея, так можно шрифты реализовать. :-)

С новой функцией buf2d_bit_blt_alpha станет немного легче реализовать, потому что она рисует прозрачный 8-битный буфер, с заливкой указанным цветом. Т.е. в отличие от buf2d_bit_blt не нужно будет создавать буфер изображения в 24 бита и потом преобразовывать его в 32-битный.


Вложения:
buf2d_100706.7z [125.83 КБ]
91 скачивание
Вернуться к началу
 Заголовок сообщения: Re: Векторные функции
СообщениеДобавлено: Пт июл 16, 2010 10:10 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Пн окт 27, 2008 10:10 pm
Сообщения: 740
Новая версия 16.07.10 - исправлено по 2 ошибки в функциях buf2d_img_hdiv2 и buf2d_img_wdiv2, которые могли проявляться при определенных условиях (если размер изображения был кратен 4Кб и др.). Добавлены 2 функции для вывода текста в буфер buf2d_convert_text_matrix и buf2d_draw_text. Добавил пример использования текста.

Архив уменьшился, потому что для 2-го примера взял другую картинку. Текст выводится в буфер на основе картинки font8x9.bmp из папки с kfar-ом. Можно брать любые картинки со шрифтами, чтобы размер 1-го символа был не более 255 пикселей.


Вложения:
buf2d_100716.7z [86.81 КБ]
89 скачиваний
Вернуться к началу
 Заголовок сообщения: Re: Векторные функции
СообщениеДобавлено: Пн июл 19, 2010 9:02 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Пн окт 27, 2008 10:10 pm
Сообщения: 740
Новая версия 19.07.10 - добавлена функция рисования окружности buf2d_circle; изменен формат буфера - для ширины и высоты используются 4-х байтные числа вместо 2-х байтных.

Алгоритм рисования взял с другой темы:
Код:
Private Sub Circ(x As Integer, y As Integer, r As Integer)
    Dim i As Integer, px As Double, py As Double
    px = 0: py = r
    For i = 0 To r * 3.1415926 * 2
        PSet (px + x, y - py), vbBlack
        px = px + py / r
        py = py - px / r
    Next
End Sub

который предложил tsdima.
Размеры буфера изменил с 2-х байт до 4-х, для того что-бы снять ограничение максимального размера символов (до 255 пикселей), теперь можно делать больше чем 255.
Возможно в будущем стоит добавить функцию рисования эллипсов.


Вложения:
buf2d_100719.7z [89.67 КБ]
111 скачиваний
Вернуться к началу
 Заголовок сообщения: Re: Векторные функции
СообщениеДобавлено: Вс май 15, 2011 5:25 pm 
Не в сети

Зарегистрирован: Чт фев 19, 2009 12:57 pm
Сообщения: 69
Может пригодится, алгортм Брезенхэма для вычерчивания окружности (без использования чисел с плавающей точкой):
Код:
procedure circle(integer x, integer y, integer r, integer color)
    integer px,py,delta
    px = 0
    py = r
    delta = 3-2*r
    while px<=py do
        pixel(color, {x+px, y+py})
        pixel(color, {x+px, y-py})
        pixel(color, {x-px, y+py})
        pixel(color, {x-px, y-py})
       
        pixel(color, {x+py, y+px})
        pixel(color, {x+py, y-px})
        pixel(color, {x-py, y+px})
        pixel(color, {x-py, y-px})
       
        if delta<0 then
            delta += 4*px+6
        else
            delta += 4*(px-py)+10
            py -= 1
        end if
        px += 1
    end while
end procedure


Вернуться к началу
 Заголовок сообщения: Re: Векторные функции
СообщениеДобавлено: Вс май 15, 2011 5:55 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Пн окт 27, 2008 10:10 pm
Сообщения: 740
Да такой алгоритм будет полезен, потому что я делал рисование окружности ( в buf2d ) с плавающей точкой. В ближайшее время буду занят, попробую использовать функцию когда освобожусь.


Вернуться к началу
 Заголовок сообщения: Re: Векторные функции
СообщениеДобавлено: Вс май 15, 2011 7:52 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Пн апр 16, 2007 6:38 pm
Сообщения: 1222
спасибо,хороший алгоритм

_________________
И мы уже давно не пешки,
Мы пули, мы орлы, и решки!
Война ютит бинарный код,
Умри, или иди вперед!


Вернуться к началу
 Заголовок сообщения: Re: Векторные функции
СообщениеДобавлено: Чт сен 22, 2011 7:48 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Пн окт 27, 2008 10:10 pm
Сообщения: 740
Ревизия 2230:
Добавил новую функцию для рисования сглаженных линий buf2d_line_sm.
Принимает такие же параметры как и функция buf2d_line.


Вернуться к началу
СообщениеДобавлено: Вт фев 21, 2012 9:43 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Пн окт 27, 2008 10:10 pm
Сообщения: 740
Ревизии 2358 и 2359 исправлена функция для рисования горизонтальной линии, функции рисования рамок и прямоугольников могут принимать отрицательные координаты, некоторые функции могут рисовать и в 8 битные буферы
Ревизия 2367 немного доработана функция buf_bit_blt_alpha


Вернуться к началу
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 93 сообщения ]  На страницу Пред. 13 4 5 6 7 След.

Часовой пояс: UTC+03:00


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Limited
Русская поддержка phpBB