| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Asm: Общие вопросы > TASM и графика |
| Автор: Joe20 15.11.2005, 15:31 |
| Вот дали мне такое вот заданиеце : нарисовать график функции cos(x), где х - число которое вводит пользователь при запуске программы .И все это надо на TASM написать . Так как я новичок то ...... ПОЖАЛУЙСТА ПОМОГИТЕ КТО ЧЕМ МОЖЕТ ВАМ ПОТОМ ВОЗДАТСЯ Добавлено @ 15:38 ...... Да и ещё у меня есть такая вот задачка (что б жизнь мёдом не казалась) поочередно вывести текст ( любой ) в разных местах екрана .Сначала в левом верхнем углу , потом в правом верхнем , нижний левый , нижний правый , и в конце концов по середине . При чем после каждого вывода предыдущий текст убираем ( очищаем екран ). Всем кто откликнется на этот зов о помощи будет предоставлен ПРИЗ (мое громадное СПАСИБО) |
| Автор: St. Andrew 16.11.2005, 14:24 | ||
| Joe20, ты вообще понял, что сказал? Тебе нужен график ф-ии? Тогда зачем юзеру вводить аргумент? Это ж ведь число получится. Ну ладно, может ты чего-нибудь напутал. Вот код программы под ДОС, сделанный в TASM. Выводит график в графическом режиме 640*320, рисует один период функции cos(x)
|
| Автор: Joe20 21.11.2005, 14:59 |
| 2 St. Andrew , ОГРОМНОЕ СПАСИБО за помощь (извиняй что с опозданием , у меня и з-за отсутсвия финансов постоянного нета нету ). Осталось лиш токо разобратся почему на моем компе это дело нормально работает , а как токо на другом запустиш ничего не фуричит.... |
| Автор: Joe20 21.11.2005, 15:13 |
| А как насчет второй задачки , неужто никто не знает как её сделать . Я в это не поверю . ..... А я понял вам просто в лом над ней думать ребята , мол "понимаеш пришол такой сякой и давай всех грузить своими задачами вроде у нас своих проблем нету, дак ищё и этот хочет что б мы СПЕЦИАЛИСТЫ за него всё сделали , вот лентяй какой" Я с вами полностю согласен , но мож у каго есть ссылочка на сайтик где такие проблемки уже расматривались , или жэ исходник завалялся старенький со 2 класа Попробуем ещё раз ;) "...... Да и ещё у меня есть такая вот задачка (что б жизнь мёдом не казалась) : поочередно вывести текст ( "Wassuup" ) в разных местах екрана .Сначала в левом верхнем углу , потом в правом верхнем , нижний левый , нижний правый , и в конце концов по середине . При чем после каждого вывода предыдущий текст убираем ( очищаем екран )." |
| Автор: oleg1973 21.11.2005, 15:59 |
| 1) ставим текстовый режим (номер 3 к примеру) 2) после этого мы знаем что графическая область экрана начинается с 0xB800 ,для цветного текста с учетом что первый байт это будет атрибут а второй код символа 3) или с 0xB000 если хотим черно-белое все ну и все осталось рассчитать адрес в экранной области куда рисовать будем данная область начинается с левого верхнего угла монитора )) p.s. а еще проще через процедуры мсдоса все это нарисовать ставим курсор в нужную поз и рисуем, меняем и снова рисуем |
| Автор: St. Andrew 22.11.2005, 01:15 | ||
Joe20, вот немного исправленный вариант программы:
У меня работает |
| Автор: mechwarrior 26.1.2006, 15:09 |
| люди а в asmе реально начертить линию методом DDA |
| Автор: Chingachguk 27.1.2006, 16:12 | ||
| Не знаю, что такое "DAA", но в асме можно все Вот к примеру:
|
| Автор: mechwarrior 28.1.2006, 14:01 |
| DDA - цифровой дифференциальный анализатор (один из алгоритмов построения линии) я спрашиваю из-за тоо что там надо делить на большие числа такие как 900000 это тоже возможно ?????? |
| Автор: Chingachguk 30.1.2006, 10:27 | ||
Ну не такие уж они и большие. Если использовать инструкции .386 процессора (это означает непривелигерованные инструкции - в основном добавляется 32-х битные), то можно написать к примеру: .data? MyValue dq 9000000 ; 8 bytes MyDiveder dd 900000 ; 4 bytes .code mov edx,dword ptr MyValue+2 mov eax,dword ptr MyValue div dword ptr MyDiveder ; 64 bits in edx:eax / 32 bits = result in eax (edx=module) Тока я сомневаюсь что это действительно для линий нужно |