Форум программистов, компьютерный форум, киберфорум
Assembler, MASM, TASM
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 04.01.2010
Сообщений: 29

Реализация графического режима средствами языка Ассемблер

14.04.2011, 19:17. Показов 1838. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток! Нужна ваша помощь!
Нужно отобразить линию в графическом режиме.
Как это сделать?
Заранее благодарен
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.04.2011, 19:17
Ответы с готовыми решениями:

реализация регулярных циклов средствами языка С++
Не могу справится с заданием помогите пожалуйста и объясните,как работает))

Составить программу инициализации графического режима, предварительно выполнив тестирование графического адаптера
Здравствуйте! Вот, попалась не простая(по моему субъективному мнению) задача, которую я совершенно не понимаю как решить. Звучит она...

Реализация алгоритмов двоичного кодирования цифр средствами языка программирования Pascal
тема: Реализация алгоритмов двоичного кодирования цифр средствами языка программирования Pascal. 1. Общие требования к программе: - в...

6
 Аватар для 6a6kin
232 / 102 / 5
Регистрация: 18.04.2010
Сообщений: 294
14.04.2011, 22:11
С заданными координатами?
1
0 / 0 / 0
Регистрация: 04.01.2010
Сообщений: 29
14.04.2011, 22:13  [ТС]
нет. просто показать реализацию данного процесса
0
Ушел с форума
Автор FAQ
 Аватар для Mikl___
16373 / 7685 / 1080
Регистрация: 11.11.2010
Сообщений: 13,759
15.04.2011, 08:37
Anton2404, посмотри нужны коменты tASM там из линий строят прямоугольник, но это примитивно и долго -- строить линию по-точечно. Еще примеры есть здесь Рисуем линию. Поищи в сети книжку Майкл Абрамс "Таинства программирования графики" а также алгоритм Брезенхайма, Алгоритмы построения отрезка, Алгоритм Ву, Алгоритм DDA-линии
0
 Аватар для 6a6kin
232 / 102 / 5
Регистрация: 18.04.2010
Сообщений: 294
15.04.2011, 09:08
Просто не так давно баловался с паскалем(абц), делая что-то похожее издали на игру. Постепенно усложняя, я решил сделать полет шариков(выстрел) туда, где мышь. И там как раз нужно было вычислить шаг изменения координат, что очень похоже на рисовку линий. Поэтому придумал два алгоритма - могу показать(на паскаль.абц)

Добавлено через 35 секунд
Правда там нужно еще саму линию нарисовать)
0
Ушел с форума
Автор FAQ
 Аватар для Mikl___
16373 / 7685 / 1080
Регистрация: 11.11.2010
Сообщений: 13,759
15.04.2011, 09:35
6a6ka, ну что же вы нас томите? Сказал А - говори Б. Показывайте свои алгоритмы...
0
 Аватар для 6a6kin
232 / 102 / 5
Регистрация: 18.04.2010
Сообщений: 294
15.04.2011, 20:40
Первая программа высчитывает шаг по Ox и Oy относительно друг друга, а вторая относительно постоянного Ox(хорошо видно в прямоугольном треугольнике, хотя сам алгоритм не такой гибкий, как первый)
Первую доработал, чтобы рисовала линию до указателя мыши.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
program anc;
uses crt, GraphABC, Events;
var i:longint;
d,xs,ys,xn,yn:real;
 
const sx=200;sy=200;
 
procedure MouseMove(x,y,mb: integer);
begin
  ClrScr; //очистить экран
  d:=sqrt(sqr(sx-x)+sqr(sy-y));  //узнаем расстояние до нужной точки
 
  if(d<>0) then begin //если расстояние не равно нулю - ведем расчеты
    xs:=(sx-x)/d; //шаг - относительное число, а xs/ys - абсолютное
    ys:=(sy-y)/d;
    xn:=0; yn:=0;
    for i:=1 to round(d) do begin
        xn:=(xn-xs);
        yn:=(yn-ys);
        SetPixel(round(xn)+200,round(yn)+200,clBlack);
    end;
  end;
  write('dir: ',round(d),' ys: ',ys,' xs: ',xs);
end;
 
BEGIN
  OnMouseMove:=MouseMove;
END.
№2
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
program anc;
uses crt, GraphABC, Events;
var i,a:longint;
d,xs,ys,xn,yn:real;
 
const sx=200;sy=200;
 
procedure MouseMove(x,y,mb: integer);
begin
  ClrScr;
  d:=sqrt(sqr(sx-x)+sqr(sy-y));
 
  if((x-sx)<>0) then begin
    if((x-sx)<0) then xs:=-1/2 else xs:=1/2;
    ys:=((y-sx)/(2*xs*(x-sx)));
    xn:=0; yn:=0;
    for i:=1 to round(d) do begin
      xn:=(xn+xs*2);
      yn:=(yn+ys*2);
      SetPixel(round(xn)+200,round(yn)+200,clBlack);
    end;
  end;
  write('dir: ',round(d),' ys: ',ys,' xs: ',xs);
end;
 
BEGIN
 
OnMouseMove:=MouseMove;
 
END.
И прикреплю игру)
Вложения
Тип файла: rar abcGame.rar (3.5 Кб, 14 просмотров)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
15.04.2011, 20:40
Помогаю со студенческими работами здесь

Реализация базы данных средствами «Словарь морфем английского языка» СУБД Microsoft Access
Отредактируйте структуру базы данных: в базу данных добавьте следующую информацию: иностранный язык, которым владеет каждый менеджер, адрес...

Ошибка графического режима
Помогите плиз! как исправить ошибку? запускаю паскаль в графическом режиме и пишет http://s002.***********/i197/1004/73/caf37084b635.jpg ...

выход из графического режима
a 100 ;инициализация mov ah,00 ;графический режим 640*350 mov al,10 int 10 ...

Инициализация графического режима!
Кто может - помогите!!!! На экране сообщение: ...Device driver file not found (EGAVGA.BGI)... Но в папке BGI он есть. Папка с...

Запуск графического режима
Поставил обычную декстопную elementary os, раньше ставил в виртуалку все норм было. Запускается почему то только в консольном режиме, не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru