Графика 2D, 3D. Помогите кто что знает!

Тема в разделе "WASM.BEGINNERS", создана пользователем RUS, 1 июн 2009.

  1. Clear__Energy

    Clear__Energy New Member

    Публикаций:
    0
    Регистрация:
    30 янв 2009
    Сообщения:
    432
    RUS
    чисто на ассемблере можно всё написать. вопрос в том, сколько у тебя это займёт времени. опенгл считаю наиболее лёгкий способ.
    а на каком асме писать - лично мне нравится FASM, а так, на вкус и цвет, все фломастеры разные.
     
  2. _basmp_

    _basmp_ New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2005
    Сообщения:
    2.939
    выводить на экран как эту беду мыслите?
     
  3. RUS

    RUS New Member

    Публикаций:
    0
    Регистрация:
    1 июн 2009
    Сообщения:
    11
    _basmp_
    беспонятия)))
    он сказали использовать тока асм!!!
     
  4. _basmp_

    _basmp_ New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2005
    Сообщения:
    2.939
    RUS
    дело в том, что ни на одну современную видюху вы без промежуточного уровня не выведете. те на чем бы вы ни писали, некое апи вызывать таки придется, а какое именно - вы уж определитесь
     
  5. murder

    murder Member

    Публикаций:
    0
    Регистрация:
    3 июн 2007
    Сообщения:
    628
    http://faqs.org.ru/progr/graph/dd3d.htm
    http://www.enlight.ru/demo/faq/
     
  6. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.914
    вращающийся треугольник на экран, можно вывести следующими способами (без OpenGL и Direct):
    1) при обработке события WM_TIMER строить через попиксельный вывод на экран поверхности треугольника (пример есть в маткаде)
    2) вывести вращающийся треугольник в том, же маткаде, построить на основе маткада авишку и организовать уже средствами ассемблера простейший просмотрщик avi-файлов и выводить его на экран
    3) можно сделать раскадрованный bmp-файл и покадрово через определенные промежутки времени выводить все это на экран, что собственно я и сделал. Правда, требовалось вывести вращающийся тор, но в данном случае, тор или треуголник -- какая в п#пу разница? :)
    Во вложенном файле сорц и ехе и не забудь сказать спасибо
     
  7. Com[e]r

    Com[e]r Com[e]r

    Публикаций:
    0
    Регистрация:
    20 апр 2007
    Сообщения:
    2.624
    Адрес:
    ого..
    да боже ж ты моё, в папке EXAMPLES масма лежит пример вращающегося разноцветного треугольника,
    он же воткнут и в Borland Delphi | C++ Builder, и в msvc, этот пример подвергли дотошной критике, устроили премьеры, и основали несколько религий!

    то что тебе попался этот пример - просто лафа, везение и поддавки со стороны препода!

    и ТЫ ещё приходишь с просьбами нагуглить тебе этот исходник??7

    я шокирован до того, что не могу думать даже о гусях Х_х
     
  8. Phuntik

    Phuntik New Member

    Публикаций:
    0
    Регистрация:
    4 фев 2008
    Сообщения:
    318
    _basmp_
    WinAPI пойдёт?
     
  9. _basmp_

    _basmp_ New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2005
    Сообщения:
    2.939
    Phuntik
    а винапи не промежуточный уровень? можно еще ДД заюзать. есть кругом и полностью параллельно выньапи. можно заюзать Д3Дим 3ей версии. вполне хватит и держится любой вынью от 95/нт4.

    но чел хотел напрямую. без любого апи. только на асме и под вынью
    http://wasm.ru/forum/viewtopic.php?pid=320380#p320380
     
  10. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.914
    _basmp_
    Ну и чем мой вариант плох?
     
  11. _basmp_

    _basmp_ New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2005
    Сообщения:
    2.939
    Mikl___
    мне?? ничем. те мне все подходит. только при чем тут я?? я только написал, что без вызова системных сервисов, неважно каких, не получится даже на асме
     
  12. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.914
    _basmp_
    а VESA можно считать системным сервисом? Только программировать геморойно...
     
  13. _basmp_

    _basmp_ New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2005
    Сообщения:
    2.939
    Mikl___
    ну что вы меня спрашиваете? я ТС этой темы? я могу это написать. и так и сяк.

    насчет весы.
    геморой там не в программировании, тк есть либы и описалова под это дело и совсем не обязательно все выхучивать с 0 самому. геморой там в том, что поддержка весы нвидиями/атями оставляет желать, в том числе и словами за которые тут банят, в том числе и желать поддержки. что я и заметил в посте
    http://wasm.ru/forum/viewtopic.php?pid=320380#p320380
    а нвидия + ати = 80% видюх ноне
     
  14. Z3N

    Z3N New Member

    Публикаций:
    0
    Регистрация:
    10 фев 2009
    Сообщения:
    812
    Нехе есть переведённый - это точно. А на этом сайте в разделе скачать (скорее всего в его графическом разделе) есть сырец кубика Рубика (rubik3.rar, пасс - 12345). Там опен гл. Удачного вкуривания...
     
  15. murder

    murder Member

    Публикаций:
    0
    Регистрация:
    3 июн 2007
    Сообщения:
    628
    Вчитайтесь в первый пост
    Автору нужно написать под DOS.
     
  16. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.914
    murder
    читаем внимательно
    #9slavanap >Реализовать под чем? Windows, DOS?
    #10RUS >а под чем легче?
    #19RUS >А чисто на ассемблере можно написать эту прогу? без OpenGL и Direct
    #22_basmp_ >выводить на экран как эту беду мыслите?
    #23RUS беспонятия))) он сказали использовать тока асм!!!
    А на Turbo Pascal'е окно, разве нельзя запрограммировать? IMHO можно - на крайняк коды команд через db вводить... ТС просит, чтобы тупо решили его задачу, в остальном он сам не определился... да и зачем ему это нужно -- очередной двоечник сдает экзамен по программированию на ассемблере


    А чисто на ассемблере можно написать эту прогу? без OpenGL и Direct
     
  17. FatMoon

    FatMoon New Member

    Публикаций:
    0
    Регистрация:
    28 ноя 2002
    Сообщения:
    954
    Адрес:
    Russia
    Во-от, наконец-то определились, что речь идет о чисто досе без всякого windows. И даже дос не нужен как таковой, только сервисы БИОС.
    ТС, как ты писал на ТурбоПаскале? Мне видится, что рисовал линиями треугольник, по 3-м точкам... Затем пересчитывал поворот на нужный градус, получал новые координаты точек после преобразования, стирал старый треугольник и выводил новый. Наверно, так?
    Значит, надо на ассемблере написать процедуру вывода отрезка, по заданным границам. Написать процедуру преобразования координат при повороте. Задать те же самые 3 точки - вершины, и в цикле вращать. Ну и собственно, вперед на мины!

    Код (Text):
    1. .code
    2. ... (задать нужный видеорежим, с очисткой экрана)
    3. @Main:
    4. mov al, PaintColor
    5. call DrawTriangle   ;рисует треугольник по 3-м точкам цветом, заданным в AL
    6. call Delay             ;делает задержку на нужный интервал - в зависимости от желаемой скорости
    7. mov al, BackColor
    8. call DrawTriangle   ;совершенно аналогично, путем задания цвета фона, стирает треугольник
    9. call RotateCS        ;пересчитывает координаты точек при повороте системы координат
    10. call CheckKey       ;проверяет, не нажал ли пользователь какую-либо клавишу - если да, то CF=1
    11. jnc @Main
    12. ... (выход)
    13. .data
    14. x      dw X1, X2, X3
    15. y     dw Y1, Y2, Y3
    16. ra    dw Rotate_Angle
    17. dc    dw Delay_constant
    Установка видеорежима, процедура задержки, проверка нажатых клавиш и выход - это элементарно. Ну а собственно рисование треугольника по координатам вершин и пересчет этих координат при повороте и составляют главную часть задания.