Парабола в ассемблере под ДОС

Тема в разделе "WASM.BEGINNERS", создана пользователем dsoft, 20 май 2007.

  1. Vov4ick

    Vov4ick Владимир

    Публикаций:
    0
    Регистрация:
    8 окт 2006
    Сообщения:
    581
    Адрес:
    МО
    Но это в случае параболы. А в общем случае анализировать функцию перед построением может оказаться дольше, чем обработка положения следующей/предыдущей точки непосредственно при отрисовке.
    Думаю есть два варианта - при построении сохранять все y=f(x])? потом произвести масштабирование и затем вывод на экран (наиболее общий случай), или же сначала проанализировать функцию (возможно на стадии написания программы, если не сильно общий случай) и рисовать так сказать в реальном времени, при этом экономя довольно много памяти и времени. Как думаете, какие ещё есть плюсы и минусы у каждого из этих способов?
     
  2. dag

    dag New Member

    Публикаций:
    0
    Регистрация:
    17 авг 2004
    Сообщения:
    446
    В догонку : откопал на полке книгу Р.Уилтон "Видеосистемы прсональных компьютеров IBP PC и PS/2" Москва, "Радио и связь" 1994 год, ISBN 5-256-00473-5 в ней есть описание с реализацией на асме универсальных алгоритмов для посторения прямых и элипсов + ещё всего полно. Читал очень давно в ней ещё помоему по клипингу, треугольникам и заливке много всего, в общем - 2D графика для доса под CGA ,EGA, MCGA и VGA
    P.S.
    Глава 7 полностью посвещена топику - алгоритм формирования эллипса, масштабирование пикселов + реализация под EGA/VGA на асме ,
    (алгоритм Бризенхэма на пару глав раньше идёт)
     
  3. dsoft

    dsoft Евгений

    Публикаций:
    0
    Регистрация:
    20 май 2007
    Сообщения:
    54
    Адрес:
    Омск
    А пример привести можно? Я как уже говорил последний раз программировал на Ассемблере еще под Спектрум, а с тех пор мало что помню.

    Ну где же я теперь эту книгу смогу найти?
     
  4. Freeman

    Freeman New Member

    Публикаций:
    0
    Регистрация:
    10 фев 2005
    Сообщения:
    1.385
    Адрес:
    Ukraine
     
  5. dag

    dag New Member

    Публикаций:
    0
    Регистрация:
    17 авг 2004
    Сообщения:
    446
    _http://bukinist.h11.ru/order.php?bid=1-281&section=prog
    вот здесь продается
    могу канэчна отсканить всю главу посвещённую эллипсам только сколько времени займёт ХЗ...
     
  6. Vov4ick

    Vov4ick Владимир

    Публикаций:
    0
    Регистрация:
    8 окт 2006
    Сообщения:
    581
    Адрес:
    МО
    Вилтона в инете полно. Оч. хорошая книжка, но перевод я встречал только кусковой, сейчас может уже целый есть, хотя и на английском хорошо читается.
     
  7. S_Alex

    S_Alex Alex

    Публикаций:
    0
    Регистрация:
    27 авг 2004
    Сообщения:
    561
    Адрес:
    Ukraine
    Да. Я тоже со SPECCY начинал.
    Были времена!????
    Y(X)=k*X**2
    В точке перегиба производная от функции равнв dY(X)/dX=1/2, тогда k/2*X=1/2, отсюда находим, что X=1/k.
    Тогда Y = k*(1/k)**2 = 1/k, выше этой точки расчитываешь X = SQRT(Y/k)
    Проверь данные с учебником по алгебре. Я могу ошибаться. Давно мозги не напрягал на эту тему.
    С этими КОМПУТЕРАМИ ваще отупеть можно. Всё они могут считать, а сам уже разучился корень извлекать...
     
  8. Vov4ick

    Vov4ick Владимир

    Публикаций:
    0
    Регистрация:
    8 окт 2006
    Сообщения:
    581
    Адрес:
    МО
    Вообще-то в точке перегиба функции её вторая производная равна нулю :derisive: А у параболы такой точки нет. Видимо ты имел ввиду проход через точку, где наклон равен п/4. Только смысл считать корень?
     
  9. dsoft

    dsoft Евгений

    Публикаций:
    0
    Регистрация:
    20 май 2007
    Сообщения:
    54
    Адрес:
    Омск
    Отыскал книгу Зубкова и даже в разных местах, скачал. Оказалось близнецы-братья. Книга полный бред, из всех алгоритмов единственный как сгенерить случайное число. Про Кулакова поисковики ничего интересного не нашли.
     
  10. G13

    G13 New Member

    Публикаций:
    0
    Регистрация:
    24 мар 2006
    Сообщения:
    499
    Смелое утверждение. Готовься уворачиваться от помидоров! =Р

    Попробуй глянуть на natahaus.ru
     
  11. dag

    dag New Member

    Публикаций:
    0
    Регистрация:
    17 авг 2004
    Сообщения:
    446
    я про Кулакова и Зубкова ничего и не говорил. Уилтона ищи
     
  12. Span

    Span New Member

    Публикаций:
    0
    Регистрация:
    5 ноя 2006
    Сообщения:
    134
    Если парабола типа Y=A*X^2 + B*X + C то можешь с шагом в 1 пиксель по абсциссе (X) идти, расчитывая ординату (Y), а дальше линейно интерполируй промежутки.
    Первое сто на ум пришло.
     
  13. Mikl_

    Mikl_ New Member

    Публикаций:
    0
    Регистрация:
    14 ноя 2006
    Сообщения:
    907
    Для параболы типа Y=A*X^2+B*X+C интерес представляют не все точки между люминофорами, а тот момент когда Y должен увеличиться/уменьшиться на 0,5 от величины люминофора. Тогда
    (Y+0,5)-Y>=A*(X+dX)^2+B*(X+dX)+C-A*X^2-B*X-C или 0,5>=2AXdX+AdX^2+BdX, то есть при инкременте/декременте Х при заданных А, В, С Y не меняется пока dX<=1/(4AX+2B) dX^2 пренебрегаем ввиду малости
     
  14. dsoft

    dsoft Евгений

    Публикаций:
    0
    Регистрация:
    20 май 2007
    Сообщения:
    54
    Адрес:
    Омск
    Согласен и на помидоры, лишь бы не гнилые. Но то что я скачал действительно бред, рассчитано на людей умственно отсталых или полных дебилов. Возможно выложили не всю книгу, а лишь часть.
     
  15. Freeman

    Freeman New Member

    Публикаций:
    0
    Регистрация:
    10 фев 2005
    Сообщения:
    1.385
    Адрес:
    Ukraine
    первый помидор.. книжка у меня в бумажном вореанте, доволен. раскрыто много вопросов, есть и описание команд, их опкоды и время выполнения, переходы по режимам, куча алгоритмов (пускай с упрощениями), базовые вопросы по программингу под вин/лин. очень удобно используется как многоцелевой справочник
     
  16. dsoft

    dsoft Евгений

    Публикаций:
    0
    Регистрация:
    20 май 2007
    Сообщения:
    54
    Адрес:
    Омск
    Рад за Вас, к сожалению электронный вариант полнотой изложения не блещет.