User Tag List

Показано с 1 по 10 из 52

Тема: В общем-то про линию

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    26.03.2008
    Адрес
    Питкяранта
    Сообщений
    1,821
    Спасибо Благодарностей отдано 
    273
    Спасибо Благодарностей получено 
    122
    Поблагодарили
    95 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию В общем-то про линию

    "Святой отец, они сделали меня грешником!" (копирихт) кино "Код Да Винчи" (слабенькая экранизация одного из оргазмов Дена Брауна, вот уж у кого нашим-бы лунонавтам поучится...)

    Итак, Метод средней точки оказался очень производительным (на те времена оказывается), насколько-же неприменим в чистом первозданном виде, это и сбило меня с толку на нехилых 10 лет, просил помощи на форуме но так внятно и не объяснил НИКТО, хотя пытались, у меня не хватило подготовки понять.
    Статья в Повере - выдержала кучу перепечаток, но всё-таки нашлась та самая дема (у ААА на сайте) которая и пролила свет - о чём там бредят, ибо код почти не рабочий приведён, пришлось тоже восстанавливать...
    Но тоже не то... Барахло...
    Наконец-то научился вращать "сразу всю вселенную" (ну аллюзия на заявленое "Основная суть данного метода состоит в том, что вращается не каждая точка в отдельности, а сразу целая плоскость")
    Очень хочется надеятся что не знал я потому-что форумчане тоже не знали, или почему молчали?
    Ладно, сейчас интересней линия, на данный момент 0 октант рисуется матрицей описаной в том-же Spectrum Expert #01, самый что ни на есть Брезенхем-Хорн, но только со стеком, ибо скорость сравнима вполне (с заявленым методом) а объёмы в разы меньше, но только в 0 и 3 октантах.

    Код:
    ;[ октант 0
    ;кв 0 bc=line_start, de=line_end
    	ld (l_end+1),sp
    	; установка ловушки (по X конца)
    quad0	ld sp,jp_q0:ld l,e,h,0:add hl,hl:add hl,sp:ld sp,hl
    	pop hl,hl:ld (trap+1),hl:ld hl,trap:push hl
    
    	; установка точки входа (по X начала)
    	ld sp,jp_q0:ld l,c,h,0:add hl,hl:add hl,sp:ld sp,hl
    	
    	ld a,d:sub b:ld d,a	; дельта Y
    	ld a,e:sub c:ld e,a	; X
    
    	LD L,B,H,high DOT_TAB,A,(HL):INC H
    	LD b,(HL):INC H:LD L,C
    	ADD A,(HL):LD l,A	;:INC H:LD A,(DE):XOR (HL):LD (DE),A
    	ld h,b
    	ld a,e:srl a
    	ld b,7	; это чтоб сэкономить на and после inc h
    	ret	; переход к отрисовке первой точки
    
    q0_p7	set 7,(hl):sub d:ret nc:add a,e:inc h:ld c,a:ld a,h:and b:ld a,c:ret nz:ld a,l:sub #e0:ld l,a:sbc a,a:and #f8:add a,h:ld h,a:ld a,c:ret
    q0_p6	set 6,(hl):sub d:ret nc:add a,e:inc h:ld c,a:ld a,h:and b:ld a,c:ret nz:ld a,l:sub #e0:ld l,a:sbc a,a:and #f8:add a,h:ld h,a:ld a,c:ret
    q0_p5	set 5,(hl):sub d:ret nc:add a,e:inc h:ld c,a:ld a,h:and b:ld a,c:ret nz:ld a,l:sub #e0:ld l,a:sbc a,a:and #f8:add a,h:ld h,a:ld a,c:ret
    q0_p4	set 4,(hl):sub d:ret nc:add a,e:inc h:ld c,a:ld a,h:and b:ld a,c:ret nz:ld a,l:sub #e0:ld l,a:sbc a,a:and #f8:add a,h:ld h,a:ld a,c:ret
    q0_p3	set 3,(hl):sub d:ret nc:add a,e:inc h:ld c,a:ld a,h:and b:ld a,c:ret nz:ld a,l:sub #e0:ld l,a:sbc a,a:and #f8:add a,h:ld h,a:ld a,c:ret
    q0_p2	set 2,(hl):sub d:ret nc:add a,e:inc h:ld c,a:ld a,h:and b:ld a,c:ret nz:ld a,l:sub #e0:ld l,a:sbc a,a:and #f8:add a,h:ld h,a:ld a,c:ret
    q0_p1	set 1,(hl):sub d:ret nc:add a,e:inc h:ld c,a:ld a,h:and b:ld a,c:ret nz:ld a,l:sub #e0:ld l,a:sbc a,a:and #f8:add a,h:ld h,a:ld a,c:ret
    q0_p0	set 0,(hl):inc l:sub d:ret nc:add a,e:inc h:ld c,a:ld a,h:and b:ld a,c:ret nz:ld a,l:sub #e0:ld l,a:sbc a,a:and #f8:add a,h:ld h,a:ld a,c:ret
    
    trap	ld hl,0:push hl
    l_end	ld sp,0:ret
    
    jp_q0	; стек для ретов, октант 0, сюда надо правильно войти и правильно поставить ловушку
    	dup 32
    		dw q0_p7, q0_p6, q0_p5, q0_p4, q0_p3, q0_p2, q0_p1, q0_p0
    	edup
    ;]
    Как бы сделать так-же для вертикального перемещения? (для 1 и 2 октантов)
    Последний раз редактировалось Destr; 24.04.2019 в 13:16.

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Всякое про эмуляторы (из темы про EmuZWin hack)
    от Shiny в разделе Эмуляторы
    Ответов: 15
    Последнее: 20.09.2017, 00:40
  2. Ответов: 5
    Последнее: 22.03.2011, 13:00

Ваши права

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