User Tag List

Страница 7 из 11 ПерваяПервая ... 34567891011 ПоследняяПоследняя
Показано с 61 по 70 из 105

Тема: Что такое тангенс и как с ним боротся?

  1. #61

    Регистрация
    06.05.2006
    Адрес
    Ливны, Орловская обл
    Сообщений
    1,169
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Destr Посмотреть сообщение
    Пробовал.
    Может быть не те процедуры?
    http://baze.au.com/misc/z80bits.html#2.2
    Эта?

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

  3. #62

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

    По умолчанию

    Цитата Сообщение от NovaStorm Посмотреть сообщение
    http://baze.au.com/misc/z80bits.html#2.2
    Эта?
    Да, эту тоже пробовал.
    В общем-то работает она вроде как и неплохо, но если аргуметы знаковые да ещё и значения во всё поле, то...
    Короче не универсальна (для данного момента, где 8 бит и точность 1/256 нужна)

  4. #63

    Регистрация
    06.05.2006
    Адрес
    Ливны, Орловская обл
    Сообщений
    1,169
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Destr Посмотреть сообщение
    Да, эту тоже пробовал.
    А эти?
    http://www.erich-foltyn.eu/Technique...yDivision.html
    и похожая
    Код:
    ;Divide 16-bit values (with 8-bit result)
    ;In: Divide HL by divider D
    ;Out: L = result, H = rest
    ;
    Div12:	ld b,8
    Div12_Loop:
    	and a
    	sbc hl,de
    	jp p,Div12_NoAdd
    	add hl,de
    	add hl,hl
    	djnz Div12_Loop
    	ret
    Div12_NoAdd:
    	scf
    	adc hl,hl
    	djnz Div12_Loop
    	ret

  5. #64

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

    По умолчанию

    Цитата Сообщение от NovaStorm Посмотреть сообщение
    Таких не видал. Спасибо, попробую.

  6. #65

    Регистрация
    08.05.2007
    Адрес
    Dnepropetrovsk
    Сообщений
    1,089
    Спасибо Благодарностей отдано 
    281
    Спасибо Благодарностей получено 
    70
    Поблагодарили
    49 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Destr, сдается мне, что твоя проблема не в процедурах деления, а в твоих формулах. А ну-ка выкладывай формулы в студию!

    Зачем тебе представление чисел со знаком, если длина катетов и гипотенузы не может быть отрицательной?

    Все правильно тебе сказал Titus: пользуйся умножением, а не делением. Если у тебя в таблице хранятся значения cos(x), на которые надо разделить - то храни в таблице обратные им числа 1/cos(x) и умножай на них, а не дели. При этом значение аргумента x в нормальных условиях никогда не должно быть таким, чтобы его косинус был равен нулю. Если у тебя оказывается, что cos(x)=0 - то в программе ошибка на более раннем этапе ее работы. Ты боишься хранить в таблице результат деления на 0, а что ты предлагаешь взамен? Делить на нуль во время работы программы? Ну-ну.

    Если косинус угла равен 0 - то угол равен 90 градусам. Представь себе такой треугольник. У него два угла равны 90 градусам! Чему равна его гипотенуза? На этот вопрос нет ответа, так как такой треугольник не может существовать.

    Правильно Titus говорит, проверь сначала свою программу на си или хотя бы на бейсике прежде, чем переводить ее на ассемблер. Проблему надо решать по частям. "Разделяй и властвуй". Надо стремиться локализовать ошибку. У тебя сейчас программа не работает, но ты не знаешь, где. Прекрасно, раздели ее на части. Одна часть - алгоитм умножения, вторая часть - что-то другое. Ты не знаешь, какая из частей неправильно работает. Проверяй их по отдельности. Проверяй отдельно формулы, отдельно косинус, отдельно деление и т.д. После проверки по отдельности, если убедился, что все работает - объединяй части, но постепенно. Объединил 2 из четырех частей - проверь, как они работают в паре. Только когда убедился, что пара работает полностью - добавляй в связку новые элементы.

    ---------- Post added at 01:26 ---------- Previous post was at 01:17 ----------

    И еще один момент. Теорема Пифагора работает. Если не работает твоя программа, использующая эту теорему - значит ошибка в программе либо в постановке задачи, но не в теореме. То, что ты не смог запустить свой алгоритм через теорему Пифагора - это сигнал того, что где-то еще есть ошибки. Ищи их.

  7. #66

    Регистрация
    11.07.2010
    Адрес
    Украина
    Сообщений
    25
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Зачем возится с катетом и гипотенузой если есть ряд Маклорена для тригонометрических функций?
    RAS на CAS не приходится

  8. #67

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

    По умолчанию

    Цитата Сообщение от Barmaley_m Посмотреть сообщение
    Destr, сдается мне, что твоя проблема не в процедурах деления, а в твоих формулах. А ну-ка выкладывай формулы в студию!
    Я ведь давал ссылку.
    Вот ещё раз (с картинками): http://zxdn.narod.ru/coding/ig5ray3d.htm
    Формулы все там, пытаюсь реализовать эту статью на практике.

    Цитата Сообщение от Barmaley_m Посмотреть сообщение
    Зачем тебе представление чисел со знаком, если длина катетов и гипотенузы не может быть отрицательной?
    Синус может

    Цитата Сообщение от Barmaley_m Посмотреть сообщение
    Если косинус угла равен 0 - то угол равен 90 градусам. Представь себе такой треугольник. У него два угла равны 90 градусам! Чему равна его гипотенуза? На этот вопрос нет ответа, так как такой треугольник не может существовать.
    Верно, но такая ситуация при определённом POV (см.статью) возможна.
    И программе вычисления расстояния (суть гипотенузы) в общем-то пофик с чем она имеет дело, с треугольником или ещё с кем. Она должна вычислить координаты точки (точнее точек D и E (см.картинки в статье)и уже умеет это делать, но пока ошибается в оценке этих расстояний и иногда путает какая из точек ближе).

    Цитата Сообщение от Barmaley_m Посмотреть сообщение
    Теорема Пифагора работает.
    Даже не думал ставить под сомнение.

    Цитата Сообщение от Barmaley_m Посмотреть сообщение
    То, что ты не смог запустить свой алгоритм через теорему Пифагора - это сигнал того, что где-то еще есть ошибки.
    У корня вычисляется только целая часть, потому и неприменима тут теорема Пифагора. С вычислением целой части корня я может быть ещё бы и смирился, но если ещё и дробную считать - это уже слишком жирно для Спека. Отбросил этот подход.

    Цитата Сообщение от Ghost Посмотреть сообщение
    Зачем возится с катетом и гипотенузой если есть ряд Маклорена для тригонометрических функций?
    Не представляю как с ним обращатся (да ещё и реалтайм).
    Высшая математика - не та вещь о которой я могу пренебрежительно заметить "Да это легко!"

  9. #68

    Регистрация
    29.12.2010
    Адрес
    Москва
    Сообщений
    1,869
    Спасибо Благодарностей отдано 
    142
    Спасибо Благодарностей получено 
    110
    Поблагодарили
    66 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Destr Посмотреть сообщение
    У корня вычисляется только целая часть, потому и неприменима тут теорема Пифагора. С вычислением целой части корня я может быть ещё бы и смирился, но если ещё и дробную считать - это уже слишком жирно для Спека. Отбросил этот подход.
    для корня можно тоже заранее рассчитанную таблицу сделать.

    Цитата Сообщение от Destr Посмотреть сообщение
    такая ситуация при определённом POV (см.статью) возможна.
    для крайних параметров лучше делать принудительную проверку вначале и свой кусок кода.

  10. #69

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

    По умолчанию

    Цитата Сообщение от Andrew771 Посмотреть сообщение
    для корня можно тоже заранее рассчитанную таблицу сделать.
    Не представляю как?
    (видел статью про корни http://www.zxpress.ru/article.php?id=1819 там один из способов корнеизвлечения - с табличкой, но я так и не понял как это всё работает)

  11. #70

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,392
    Спасибо Благодарностей отдано 
    1,701
    Спасибо Благодарностей получено 
    2,219
    Поблагодарили
    873 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от Destr Посмотреть сообщение
    Не представляю как?
    (видел статью про корни http://www.zxpress.ru/article.php?id=1819 там один из способов корнеизвлечения - с табличкой, но я так и не понял как это всё работает)
    Корень вычислить не так трудно. Можно вычислять побитно. Можно по таблице, а аппроксимацией между двумя соседними значениями. Можно и просто по таблице, если точность нужна невысокая. Другое дело, что от корней тоже надо уходить по возможности.

    ---------- Post added at 19:11 ---------- Previous post was at 19:10 ----------

    И еще, любое дробное число с фиксированной точкой - это практически тоже самое, что и целое число, только сдвинутое влево и все.

Страница 7 из 11 ПерваяПервая ... 34567891011 ПоследняяПоследняя

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

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

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

Похожие темы

  1. Что такое SamRam?
    от ARTi в разделе Несортированное железо
    Ответов: 2
    Последнее: 23.11.2007, 16:20
  2. А вот как вам такое?
    от icebear в разделе Несортированное железо
    Ответов: 2
    Последнее: 13.08.2005, 16:38

Метки этой темы

Ваши права

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