Документация к свободной библиотеке vectors.asm, для ОС Колибри.
Последнее обновление библиотеки 01.09.09.
Рисует линию на экране.
; [esp+8] = p0 ; [esp+12] = p1 ; [esp+16] = color
Преобразует координаты заданного контура из декартовой системы координат в полярную.
; [esp+8] = contur
Рисует фигуры с учетом заданной центральной точки и угла поворота
; [esp+8] = x0,y0,a0,... ; [esp+12] = contur ; [esp+16] = color
Определяет длину и угол поворота вектора по двум координатам
; ebp+8 = adress int coord x ; ebp+10 = adress int coord y
Длинна вектора, которая вычисляется функцией vect_opred2i
Угол порота вектора в радианах, вычисляется функцией vect_opred2i
1. Подключаем библиотеку как и остальные библиотеки в Колибри. Пример таблицы экспорта:
align 4 vectors_lib_import: vect_line dd av_line vect_conv_cont dd av_conv_cont vect_draw_cont dd av_draw_cont vect_opred2i dd av_opred2i vect_o_len dd av_o_len vect_o_ang dd av_o_ang dd 0,0 av_line db 'vect_line',0 av_conv_cont db 'vect_conv_cont',0 av_draw_cont db 'vect_draw_cont',0 av_opred2i db 'vect_opred2i',0 av_o_len db 'vect_o_len',0 av_o_ang db 'vect_o_ang',0
2. Подключаем файл vectors.inc. Пока в нем содержится 1-на константа, но дальше он должен будет дополнится и другими.
include 'vectors.inc' ;vectors functions constant
3. Задаем параметры центральной точки (имя может быть любое):
sam: .x dd 180.0 .y dd 100.0 .a dd 0.0 ;angle .s dd 1.0 ;scale
4. Задаем число точек в каждом контуре и координаты точек (имя контура любое).
cont: dw 21 dd -2.0,-12.0, -2.0,-10.0, -4.0,-9.5, -4.0,-8.5, -2.0,-7.0, -2.0,-6.0, -7.0,-5.0, -7.0,-3.0, -2.0,1.0, -2.0,3.0 dd 0.0,5.0, 2.0,3.0, 2.0,1.0, 7.0,-3.0, 7.0,-5.0, 2.0,-6.0, 2.0,-7.0, 4.0,-8.5, 4.0,-9.5, 2.0,-10.0, 2.0,-12.0 dw 2 dd 0.0,5.0, 0.0,8.5 dw 2 dd -2.0,-10.0, 2.0,-10.0 dw 2+VECT_PARAM_COLOR dd 0x0080d0 dd 0.0,0.0, 0.0,2.0 dw 0
5. Если координаты точек в контуре заданы не полярной системе координат, то вызываем функцию для их преобразования:
push dword cont call [vect_conv_cont]
6. Рисуем наши фигуры:
push dword 0xff ;первоначальный цвет push dword cont ;координаты контуров (фигура) push dword sam ;параметры начальной точки call [vect_draw_cont]
7. При необходимости коректируем параметры начальной точки и делаем новые перерисовки