|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
01.06.2010, 12:02 | #1 |
Пользователь
Регистрация: 22.03.2010
Сообщений: 22
|
Рисование пятиугольника
Всем доброго времени суток.
Продолжаю изучать асм, но чтото задания опережают мои познания ... Нам задали лабораторную по компьютерной графике(написать на асме): Надо в окне нарисовать 5ти угольник и кнопками с клавиатуры управлять им (перемещение по осям и масштабирование) ... Может кто сможет с кодом помочь или хотя бы подсказать что да как примерно делать (какие библиотеки и приёмы использовать) ??? Есть ещё вариант сделать на С++ со вкладками ассемблера ... но этот вариант меня ещё более в стопор вводит ... какие именно вкладки на асме делать - я хз |
01.06.2010, 12:36 | #2 |
Участник клуба
Регистрация: 11.01.2010
Сообщений: 1,139
|
zverozavr
пиши полностью на С++, а потом посмотри через встроенный в С++ отладчик в какой ассемблерный код это все превратится. Для лучшего понимания отключи оптимизацию при создании программы на С++ |
01.06.2010, 16:27 | #3 |
Непрофессионал
Участник клуба
Регистрация: 01.01.2008
Сообщений: 1,405
|
Вот вам для примера исходник на masm-е, может быть поможет чем нибудь. Это кусок моего "3D моделиста", а именно GDI часть плоскостного редактора. Всё лишнее я постарался поудалять, правда мог и полезное что нибудь тоже подмахнуть. Ну да для примера подойдёт.
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------ Страничка с моими программками http://ulex-masm.ru |
02.06.2010, 21:17 | #4 |
Пользователь
Регистрация: 22.03.2010
Сообщений: 22
|
Ulex, спасибо но это не то немного
надо чтобы уже был нарисован пятиугольник а не рисовать его по размерам |
02.06.2010, 21:31 | #5 |
Непрофессионал
Участник клуба
Регистрация: 01.01.2008
Сообщений: 1,405
|
Я же сразу сказал - это пример работы с графикой GDI.
На самом деле в этой программе есть всё, что вам надо: 1. Перемещение, масштабирование фигур (здесь реализовано мышью, вам надо только переделать на кнопки). 2. Функции рисования плоских примитив (выпуклых многоугольников). Частные случаи треугольник и квадрат. Например, если вы нажмёте кнопочку "окружность" и выберете точность равную пяти, то получите пятиугольник. Просто вам надо эту функцию вызвать не по кнопке, а где нибудь по старту. Вобщем надо программу чуть переделать.
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------ Страничка с моими программками http://ulex-masm.ru |
02.06.2010, 21:53 | #6 |
Регистрация: 02.06.2010
Сообщений: 9
|
Топикстартер, у нас тоже была подобная лаба, только мы малевали треугольник. Могу кинуть с комментариями. Нужно?(лучше в личку чиркани, если надо).
|
02.06.2010, 22:12 | #7 |
Пользователь
Регистрация: 22.03.2010
Сообщений: 22
|
Чувствую себя ламером, но не могу найти как писать в личку
Polos, буду очень признателен если скинешь. Пи.Си. буду не против если ещё и подскажите что куда и где менять хотябы образно |
03.06.2010, 01:49 | #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 DSseg,CS:cseg 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 |
03.06.2010, 14:19 | #9 |
Пользователь
Регистрация: 22.03.2010
Сообщений: 22
|
эм ... чтото не догоню где тут подвох О.О
особенно Ступид меня прям не радует |
03.06.2010, 17:11 | #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 |