|
ru.algorithms- RU.ALGORITHMS ---------------------------------------------------------------- From : Dmitry Kalinin 2:5009/5.43 15 Aug 2001 19:53:46 To : Alexander Lunkov Subject : Re: алгоpитмы ищy -------------------------------------------------------------------------------- 13 Авг 01 22:11, Alexander Lunkov -> All: AL> Ищy алгоpитмы pисования геометpических фигyp (квадpат, линия и AL> т.д.). Жел-но с pеализацией на ассемблеpе. Вот рисование линии, ddsd.lpSurface - указатель на начало экрана ddsd.dwWidth - Ширина экрана Рисует линию в режиме 32bpp. @start: push edi push ebx // Расчет смещения mov edi, ddsd.lpSurface mov eax, y1 mov ecx, ddsd.dwWidth mul ecx add eax, x1 shl eax, 2 add edi, eax // Расчет dY shl ecx, 2 mov eax, y2 sub eax, y1 jns @dy_plus neg eax neg ecx @dy_plus: mov _dy, eax mov incy, ecx // Расчет dX mov ecx, 4 mov eax, x2 sub eax, x1 jns @dx_plus neg eax neg ecx @dx_plus: mov _dx, eax mov incx, ecx // Выбор цикла (по X или по Y) cmp eax, _dy jl @loop_by_y // Цикл по X @loop_by_x: // Подготовка к рисованию линии mov ecx, eax // Кол-во точек mov edx, ecx // Hачальное neg edx // управляющее слово shl _dx, 1 // Корректировка dX mov ebx, _dy // Корректировка dY shl ebx, 1 // mov eax, color // Цвет // Рисование линии @pixel_x: mov dword ptr [edi], eax add edx, ebx js @dx_minus sub edx, _dx add edi, incy @dx_minus: add edi, incx dec ecx jns @pixel_x jmp @end // Цикл по Y @loop_by_y: // Подготовка к рисованию линии mov ecx, _dy // Кол-во точек mov edx, ecx // Hачальное neg edx // управляющее слово shl _dy, 1 // Корректировка dY mov ebx, eax // Корректировка dX shl ebx, 1 // mov eax, color // Цвет // Рисование линии @pixel_y: mov dword ptr [edi], eax add edx, ebx js @dy_minus sub edx, _dy add edi, incx @dy_minus: add edi, incy dec ecx jns @pixel_y // Завершение процедуры @end: pop ebx pop edi Квадрат - набор, горизонтальных линий. Dmitry ... "Hа краю обрыва песня неземная, музыка богов и голоса богинь" (c) 1996 Ария. Ангельская пыль --- 0f 0f 0e 0e 0e 0e 0c 0c 0a 09 09 06 03 00 00 00 ДВБВДБДДВДДДДДБДДДДД * Origin: bESt reGUARdS (2:5009/5.43) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/27843b7a9bd8.html, оценка из 5, голосов 10
|