Комментарии ИМХО лучше писать на английском, тем более что латиница во всех кодировках одинаково будет.
offtop:
*Вот думаю, в исходниках MeView комментариев чуть ли не больше чем кода, а всё равно никто даже не заинтересовался...*
offtop_end:
Функции рисования 2d графики (библиотеки vectors и buf2d)
Все, кто реально пишут код, уже понабрали предостаточно проектов.
Коментарии в коде нужны, чтобы в нём мог разобраться и другой программист. Возможно другой программист сможет улучшить код и исправить ошибки(если они есть).
Коментарии в коде нужны, чтобы в нём мог разобраться и другой программист. Возможно другой программист сможет улучшить код и исправить ошибки(если они есть).
KolibriOS-перспективная ос!
Kolibri is best operation system in the world!
Kolibri is best operation system in the world!
Nable
Я смотрел твои исходники. Однако на все не хватает времени. Если у тебя есть желание сотрудничать - готов предоставить свои спецификации. Просто реально не успеваю всего делать. Если имеешь желание - пиши в личку. Просто писать на форуме в абсолютно не связанной теме - малопродуктивно.
Я смотрел твои исходники. Однако на все не хватает времени. Если у тебя есть желание сотрудничать - готов предоставить свои спецификации. Просто реально не успеваю всего делать. Если имеешь желание - пиши в личку. Просто писать на форуме в абсолютно не связанной теме - малопродуктивно.
IgorA
Русский, англицкий, cp1251 или cp866 - без разницы, думаю справляться с ними все умеют (хотя если строки в cp866 то и коментарии тоже удобно в cp866 использовать).
В первую очередь конечно лучше коментировать библиотеку.
Русский, англицкий, cp1251 или cp866 - без разницы, думаю справляться с ними все умеют (хотя если строки в cp866 то и коментарии тоже удобно в cp866 использовать).
В первую очередь конечно лучше коментировать библиотеку.
Немного прокомментировал код библиотеки, и написал еще 1 пример программки.
Думаю можно было и больше комментариев дать, но пока не очень детально.
Думаю можно было и больше комментариев дать, но пока не очень детально.
- Attachments
-
-
vectors_comment.7z (11.53 KiB)Downloaded 468 times
-
Решил сделать библиотеку для работы с 2d буферами, для обработки изображений. Думаю это будет что-то наподобие pixlib, но на asm. Пока возможности ограничены, можно создавать буферы, рисовать в них прямые линии. Также есть функции для рисования (полу)прозрачных изображений поверх других. Возможно в будущем некоторые функции перекочуют из vectors.obj.
В архиве исходные коды библиотеки и 2 программы: 1-я тестовая, 2-я показывает работу с прозрачностью. Вторая программа использует libimg для получения данных изображения в формате rgb.
В архиве исходные коды библиотеки и 2 программы: 1-я тестовая, 2-я показывает работу с прозрачностью. Вторая программа использует libimg для получения данных изображения в формате rgb.
- Attachments
-
-
buf2d_100702.7z (124.04 KiB)Downloaded 437 times
-
Хорошая идея, так можно шрифты реализовать.
новая версия 06.07.10 - расширены возможности функции buf2d_bit_blt, теперь она может рисовать 32 битные буферы. Добавлены 2 новые функции: buf2d_bit_blt_alpha и buf2d_cruve_bezier. Небольшие изменения в функции buf2d_line.
С новой функцией buf2d_bit_blt_alpha станет немного легче реализовать, потому что она рисует прозрачный 8-битный буфер, с заливкой указанным цветом. Т.е. в отличие от buf2d_bit_blt не нужно будет создавать буфер изображения в 24 бита и потом преобразовывать его в 32-битный.Mario wrote:Хорошая идея, так можно шрифты реализовать.
- Attachments
-
-
buf2d_100706.7z (125.83 KiB)Downloaded 428 times
-
Новая версия 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 пикселей.
Архив уменьшился, потому что для 2-го примера взял другую картинку. Текст выводится в буфер на основе картинки font8x9.bmp из папки с kfar-ом. Можно брать любые картинки со шрифтами, чтобы размер 1-го символа был не более 255 пикселей.
- Attachments
-
-
buf2d_100716.7z (86.81 KiB)Downloaded 412 times
-
Новая версия 19.07.10 - добавлена функция рисования окружности buf2d_circle; изменен формат буфера - для ширины и высоты используются 4-х байтные числа вместо 2-х байтных.
Алгоритм рисования взял с другой темы:
который предложил tsdima.
Размеры буфера изменил с 2-х байт до 4-х, для того что-бы снять ограничение максимального размера символов (до 255 пикселей), теперь можно делать больше чем 255.
Возможно в будущем стоит добавить функцию рисования эллипсов.
Алгоритм рисования взял с другой темы:
Code: Select all
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
Размеры буфера изменил с 2-х байт до 4-х, для того что-бы снять ограничение максимального размера символов (до 255 пикселей), теперь можно делать больше чем 255.
Возможно в будущем стоит добавить функцию рисования эллипсов.
- Attachments
-
-
buf2d_100719.7z (89.67 KiB)Downloaded 437 times
-
Может пригодится, алгортм Брезенхэма для вычерчивания окружности (без использования чисел с плавающей точкой):
Code: Select all
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
Да такой алгоритм будет полезен, потому что я делал рисование окружности ( в buf2d ) с плавающей точкой. В ближайшее время буду занят, попробую использовать функцию когда освобожусь.
спасибо,хороший алгоритм
И мы уже давно не пешки,
Мы пули, мы орлы, и решки!
Война ютит бинарный код,
Умри, или иди вперед!
Мы пули, мы орлы, и решки!
Война ютит бинарный код,
Умри, или иди вперед!
Ревизия 2230:
Добавил новую функцию для рисования сглаженных линий buf2d_line_sm.
Принимает такие же параметры как и функция buf2d_line.
Добавил новую функцию для рисования сглаженных линий buf2d_line_sm.
Принимает такие же параметры как и функция buf2d_line.
Ревизии 2358 и 2359 исправлена функция для рисования горизонтальной линии, функции рисования рамок и прямоугольников могут принимать отрицательные координаты, некоторые функции могут рисовать и в 8 битные буферы
Ревизия 2367 немного доработана функция buf_bit_blt_alpha
Ревизия 2367 немного доработана функция buf_bit_blt_alpha
Who is online
Users browsing this forum: No registered users and 2 guests