Важная информация

User Tag List

Страница 1 из 3 123 ПоследняяПоследняя
Показано с 1 по 10 из 30

Тема: Вопрос на засыпку: что делает эта подпрограмма?

  1. #1
    Guru Аватар для jerri
    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,752
    Спасибо Благодарностей отдано 
    261
    Спасибо Благодарностей получено 
    269
    Поблагодарили
    203 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Вопрос на засыпку: что делает эта подпрограмма?

    входные данные result_lh
    сумма двух квадратов

    выходные данные L - result_l

    Код:
    count_round
    ;                LDY     rezult_h        ; y=(rezult_h)
    ;                LDA     rezult_l        ; a=(rezult_l)
    ;                STA     factor_2        ; (factor2)=(rezult_l)
    	ld	de,(rezult_1)
    			;	d(y=result_h)
    			;	e=factor2
    
    ;                 LDX     #0              ; x=0
    ;                 STX     rezult_l        ; rezult_l=0
    ;                 LDA     #8
    ;                 STA     factor_1        ; ctr=8 repeat 16 times
    
    	ld	bc,#0800
    			;	b=factor_1
    			;	c=x
    	ld	l,0	
    			;	l=rezult_l
    count_loop
    ;                 CPX     rezult_l        ; x=(result_l)?
    		
    	ld	a,c
    	cp	l
    
    ;                 BCC     skip_decr       ; jr nc
    	jr	nc,skip_decr
    
    ;                 BNE     no_chek_round   ; jr nz
    	jr	nz,no_chek_round
    
    
    
    ;                 CPY     #$40 ; '@'      ; y(rezult_h)=#40?
    	ld	a,d
    	cp	#40
    
    ;                 BCC     skip_decr       ; jr nc
    	jr	nc,skip_decr
    
    
    
    no_chek_round
    ;                 TYA
    ;                 SBC     #$40 ; '@'      ; y(result_h)-#40
    ;                 TAY
    
    	ld	a,d
    	sbc	a,#40	
    	ld	d,a
    
    ;                 TXA
    ;                 SBC     rezult_l        ; x-result_l
    ;                 TAX
    
    	ld	a,c
    	sbc	a,l
    	ld	c,a
    
    skip_decr
    
    ;                 ROL     rezult_l        ; rezult_l*2
    
    	rl	l
    
    
    ;                 ASL     factor_2        ; <(factor2)(result_l)
    ;                 TYA
    ;                 ROL     A               ; <y
    ;                 TAY
    ;                 TXA
    ;                 ROL     A               ; <x
    ;                 TAX
    
    	sla	e
    	rl	d
    	rl	c
    
    ;                 ASL     factor_2        ; <(factor2)(result_l)
    ;                 TYA
    ;                 ROL     A               ; <y
    ;                 TAY
    ;                 TXA
    ;                 ROL     A               ; ;<x
    ;                 TAX
    
    	sla	e
    	rl	d
    	rl	c
    
    ;                 DEC     factor_1
    ;                 BNE     count_loop
    
    	djnz	count_loop
    
    ;                 RTS
    	ret
    С уважением,
    Jerri / Red Triangle.

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

  3. #2
    Guru Аватар для svofski
    Регистрация
    20.06.2007
    Адрес
    С.-Петербург
    Сообщений
    4,116
    Спасибо Благодарностей отдано 
    792
    Спасибо Благодарностей получено 
    656
    Поблагодарили
    403 сообщений
    Mentioned
    22 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Просто догадка, приближение квадратного корня?

    http://6502org.wikidot.com/software-math-sqrt

    На 6502 совсем мой глаз не заточен, но вроде похоже.
    Больше игр нет

  4. #3
    Guru Аватар для jerri
    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,752
    Спасибо Благодарностей отдано 
    261
    Спасибо Благодарностей получено 
    269
    Поблагодарили
    203 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    svofski, да это определенно извлечение корня.
    но зачем?

    у нас есть сумма катетов. зачем нам гипотенуза?
    С уважением,
    Jerri / Red Triangle.

  5. #4
    Guru Аватар для svofski
    Регистрация
    20.06.2007
    Адрес
    С.-Петербург
    Сообщений
    4,116
    Спасибо Благодарностей отдано 
    792
    Спасибо Благодарностей получено 
    656
    Поблагодарили
    403 сообщений
    Mentioned
    22 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Длина отрезка, вектора, расстояние между двумя точками, Евклидова норма, L2-норма. В графике постоянно пригождается. Можно определить принадлежность точки к кругу, или шару. В большинстве случаев можно сэкономить извлечение корня и сравнивать так же с квадратом расстояния. Но если это не просто сравнение, то не всегда получается так упростить. Это же Элита?
    Больше игр нет

  6. #5
    Guru Аватар для Shiny
    Регистрация
    19.01.2017
    Адрес
    г. Арзамас
    Сообщений
    2,130
    Записей в дневнике
    38
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    33
    Поблагодарили
    20 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Может, решение квадратного уравнения втиснулось?

  7. #6
    Guru Аватар для jerri
    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,752
    Спасибо Благодарностей отдано 
    261
    Спасибо Благодарностей получено 
    269
    Поблагодарили
    203 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от svofski Посмотреть сообщение
    Длина отрезка, вектора, расстояние между двумя точками, Евклидова норма, L2-норма. В графике постоянно пригождается. Можно определить принадлежность точки к кругу, или шару. В большинстве случаев можно сэкономить извлечение корня и сравнивать так же с квадратом расстояния. Но если это не просто сравнение, то не всегда получается так упростить. Это же Элита?
    ага
    заставка с Акорна
    там где рисуется подсвеченная планета
    С уважением,
    Jerri / Red Triangle.

  8. #7
    Guru Аватар для svofski
    Регистрация
    20.06.2007
    Адрес
    С.-Петербург
    Сообщений
    4,116
    Спасибо Благодарностей отдано 
    792
    Спасибо Благодарностей получено 
    656
    Поблагодарили
    403 сообщений
    Mentioned
    22 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Тогда это может быть модель освещения. яркость = dotproduct(нормаль к сфере, вектор на лампочку) * коэффициент. Чтобы это работало, векторы нужно нормировать, для этого надо их компоненты умножить на величину обратную длине. Это удобно ложится на стандартные наборы алгоритмов, в которых как правило есть уже разработанное оптимизированное приближение 1/sqrt(x) (square root reciprocal). Для сферы по идее можно и упростить, принять все размеры за 1.
    Больше игр нет

  9. #8
    Guru Аватар для jerri
    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,752
    Спасибо Благодарностей отдано 
    261
    Спасибо Благодарностей получено 
    269
    Поблагодарили
    203 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    нет

    svofski,

    берется рандомное число
    возводится в квадрат
    берется еще одно рандомное число

    сохраняем

    возводится в квадрат
    складываем с первым квадратом
    если больше то точку игнорируем

    из 4000 вычитаем сумму
    если меньше то точку игнорируем

    потом извлекаем корень
    и берем сохраненное число
    рисуем точку по координатам
    С уважением,
    Jerri / Red Triangle.

  10. #9
    Guru Аватар для svofski
    Регистрация
    20.06.2007
    Адрес
    С.-Петербург
    Сообщений
    4,116
    Спасибо Благодарностей отдано 
    792
    Спасибо Благодарностей получено 
    656
    Поблагодарили
    403 сообщений
    Mentioned
    22 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Освещение методом монте карло? Сфера и освещение 1 бит на пиксель с дизерингом.
    Больше игр нет

  11. #10
    Guru Аватар для jerri
    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,752
    Спасибо Благодарностей отдано 
    261
    Спасибо Благодарностей получено 
    269
    Поблагодарили
    203 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    svofski, по факту вот такая картинка
    С уважением,
    Jerri / Red Triangle.

Страница 1 из 3 123 ПоследняяПоследняя

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

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

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

Похожие темы

  1. Ответов: 40
    Последнее: 13.02.2022, 22:16
  2. Что делает данная схемка (инвертор и 2 диода)?
    от PATHNK в разделе Несортированное железо
    Ответов: 7
    Последнее: 10.09.2013, 15:15
  3. вопрос на засыпку
    от Red_Ant в разделе Игры
    Ответов: 5
    Последнее: 15.09.2006, 18:34
  4. Вот что делает РЕКЛАМА!
    от Firestarter в разделе Форум
    Ответов: 12
    Последнее: 26.01.2005, 18:57

Ваши права

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