![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 22.03.2010
Сообщений: 22
|
![]()
Всем доброго времени суток.
Продолжаю изучать асм, но чтото задания опережают мои познания ... Нам задали лабораторную по компьютерной графике(написать на асме): Надо в окне нарисовать 5ти угольник и кнопками с клавиатуры управлять им (перемещение по осям и масштабирование) ... Может кто сможет с кодом помочь или хотя бы подсказать что да как примерно делать (какие библиотеки и приёмы использовать) ??? Есть ещё вариант сделать на С++ со вкладками ассемблера ... но этот вариант меня ещё более в стопор вводит ... какие именно вкладки на асме делать - я хз ![]() |
![]() |
![]() |
![]() |
#2 |
Участник клуба
Регистрация: 11.01.2010
Сообщений: 1,139
|
![]()
zverozavr
пиши полностью на С++, а потом посмотри через встроенный в С++ отладчик в какой ассемблерный код это все превратится. Для лучшего понимания отключи оптимизацию при создании программы на С++ |
![]() |
![]() |
![]() |
#3 |
Непрофессионал
Участник клуба
Регистрация: 01.01.2008
Сообщений: 1,405
|
![]()
Вот вам для примера исходник на masm-е, может быть поможет чем нибудь. Это кусок моего "3D моделиста", а именно GDI часть плоскостного редактора. Всё лишнее я постарался поудалять, правда мог и полезное что нибудь тоже подмахнуть. Ну да для примера подойдёт.
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------ Страничка с моими программками http://ulex-masm.ru |
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 22.03.2010
Сообщений: 22
|
![]()
Ulex, спасибо но это не то немного
![]() надо чтобы уже был нарисован пятиугольник а не рисовать его по размерам |
![]() |
![]() |
![]() |
#5 |
Непрофессионал
Участник клуба
Регистрация: 01.01.2008
Сообщений: 1,405
|
![]()
Я же сразу сказал - это пример работы с графикой GDI.
На самом деле в этой программе есть всё, что вам надо: 1. Перемещение, масштабирование фигур (здесь реализовано мышью, вам надо только переделать на кнопки). 2. Функции рисования плоских примитив (выпуклых многоугольников). Частные случаи треугольник и квадрат. Например, если вы нажмёте кнопочку "окружность" и выберете точность равную пяти, то получите пятиугольник. Просто вам надо эту функцию вызвать не по кнопке, а где нибудь по старту. Вобщем надо программу чуть переделать.
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------ Страничка с моими программками http://ulex-masm.ru |
![]() |
![]() |
![]() |
#6 |
Регистрация: 02.06.2010
Сообщений: 9
|
![]()
Топикстартер, у нас тоже была подобная лаба, только мы малевали треугольник. Могу кинуть с комментариями. Нужно?(лучше в личку чиркани, если надо).
|
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 22.03.2010
Сообщений: 22
|
![]()
Чувствую себя ламером, но не могу найти как писать в личку
![]() Polos, буду очень признателен если скинешь. Пи.Си. буду не против если ещё и подскажите что куда и где менять ![]() |
![]() |
![]() |
![]() |
#8 |
Регистрация: 02.06.2010
Сообщений: 9
|
![]()
Увы прога без комментов. Но могу кое чего объяснить..хотя тут люди поумнее меня будут)....
dseg SEGMENT 'DATA' x1 DW 140 y1 DW 100 x2 DW 180 y3 DW 60 n DW 140 m DW 100 x DW 140 y DW 100 dseg ENDS cseg SEGMENT 'CODE' ASSUME DS ![]() start: MOV AX, dseg MOV DS, AX mov ax, 0004h int 10h mov ah, 0bh mov bh, 01 mov bl, 00 int 10h @1: MOV AH, 0Ch MOV BH, 0 MOV AL, 10 MOV DX, y1 MOV CX, x1 INT 10h INC CX MOV x1, CX CMP CX, x2 JE @2 JNE @1 @2: MOV DX, m MOV CX, n DEC DX INC CX MOV x1, CX MOV y1, DX MOV m, DX MOV n, CX CMP DX, y3 JE @3 JNE @1 @3: MOV AH, 08h INT 21h CMP AL, 4Ah JE @move CMP AL, 4bh JE @move_left CMP AL, 48h JE @move_up CMP AL, 50h JE @move_down CMP AL, 53h JE @end CMP AL, 4Dh JE @move_right @move: CALL stupid @move_left: CALL CLEAR DEC x MOV AX, x MOV x1, AX MOV n, AX DEC x2 MOV AX, y MOV m, AX MOV y1, AX JMP @1 @move_up: CALL CLEAR DEC y MOV AX, y MOV y1, AX MOV m, AX DEC y3 MOV AX,x MOV n, AX MOV x1, AX JMP @1 @move_down: CALL CLEAR INC y MOV AX, y MOV y1, AX MOV m, AX INC y3 MOV AX,x MOV n, AX MOV x1, AX JMP @1 @end: MOV AH, 4ch INT 21h @move_right: CALL CLEAR INC x MOV AX, x MOV x1, AX MOV n, AX INC x2 MOV AX, y MOV m, AX MOV y1, AX JMP @1 CLEAR PROC mov ax,0004h int 10h ret CLEAR ENDP STUPID proc CALL CLEAR MOV AX, x MOV x1, AX MOV n, AX MOV AX, y MOV m, AX MOV y1, AX JMP @1 STUPID ENDP cseg ENDS |
![]() |
![]() |
![]() |
#9 |
Пользователь
Регистрация: 22.03.2010
Сообщений: 22
|
![]()
эм ... чтото не догоню где тут подвох О.О
особенно Ступид меня прям не радует ![]() |
![]() |
![]() |
![]() |
#10 |
Регистрация: 02.06.2010
Сообщений: 9
|
![]()
Какой подвох? никаких подвохов. скомпилируй, глянь)
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Рисование | Granus | Общие вопросы Delphi | 2 | 24.12.2008 07:44 |
Рисование | TriCERATOP | Помощь студентам | 5 | 28.11.2008 15:09 |
Рисование... | HunterMan | Win Api | 10 | 30.04.2008 23:46 |