Форум программистов, компьютерный форум, киберфорум
Assembler для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
1 / 1 / 0
Регистрация: 02.12.2014
Сообщений: 66
1

Размер окружности

08.12.2016, 21:04. Показов 1337. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем добрый вечер! Имеется код колец, как уменьшить размер второго к примеру? Заранее спасибо.

Assembler
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
;кольца разных цветов
.386
 
data    segment use16
 
x360            dd      180.0           ;константа перевода градусы-радианы
x36             dw      360             ;число точек на окружности
 
;Значение радиуса по осям
ratiox          equ     16              ;Соотношение строн монитора: 4:3 или 16:9
ratioy          equ     9
sizex           equ     640             ;Размер экрана при режиме 12h(640x480): 640x350
sizey           equ     350
 
;=============Первая окружность==================================================
;Координаты центра окружности
xc              dw      110
yc              dw      180
;Значение радиуса по осям
_rx             equ     100
_ry             equ     (((_rx*sizey)/ratioy)*ratiox)/sizex
rx              dw      _rx             ;100
ry              dw      _ry             ;70
forcolor1        db      9              ; цвет кольца
;=============Вторая окружность==================================================
xc2              dw      320
yc2              dw      180
_rx2             equ     120
_ry2             equ     (((_rx*sizey)/ratioy)*ratiox)/sizex
rx2              dw      _rx             ;100
ry2              dw      _ry             ;70
forcolor2        db      5              ; цвет кольца
 
;===============конец окружностей=================================================
 
;Переменные
x               dw      ?               ;Текущие координаты точки окружности
y               dw      ?
angl            dw      1               ;Текущее значение угла
 
data    ends
 
text    segment use16
        assume CS:text, DS:data, SS:stk
 
;==============Первая окружность============================
;Подпрограмма изменения цвета пиксела
point           proc
        push    CX
        mov     CX, xc
        mov     AH, 0Ch
        mov     AL, forcolor1
        mov     BH, 0
        mov     DX, yc
        mov     CX, xc
        sub     CX, x
        sub     DX, y
        int     10h
        pop     CX
        ret
point           endp
;==============Вторая окружность============================
point2           proc
        push    CX
        mov     CX, xc2
        mov     AH, 0Ch
        mov     AL, forcolor2
        mov     BH, 0
        mov     DX, yc2
        mov     CX, xc2
        sub     CX, x
        sub     DX, y
        int     10h
        pop     CX
        ret
point2           endp
 
;==============конец 2 окружностей============================
 
;Главная процедура
main            proc
 
        mov     AX, data                ;Инициализация регистра DS
        mov     DS, AX
        mov     AH, 0h                  ;Установка графического режима
        mov     AL, 12h                 ;Режим 12h (640x480)
        int     10h
        mov     CX, x36                 ;Число шагов построения окружности
        finit                           ;Инициализация сопроцессора
        fldpi                           ;Загрузка в стек числа pi
        fld     x360                    ;Загрузка в стек числа 180
        fdiv                            ;pi/180, результат в ST
        fstp    x360                    ;Сохранение в памяти коэффициента
                                        ;перевода градусов в радианы
 
;==============Первая окружность============================
;Вычисление координат точек и вывод рисунка
do:
        fld     x360                    ;Коэффициент градус-радианы в стек
        fild    angl                    ;Очередное значение угла в стек
        fmul                            ;перевод в радианы
        fsincos                         ;sin(x) -> ST(1), cos(x) -> ST(0)
        fild    ry                      ;Загрузка радиуса по координате y
        fmul                            ;Вычисление координаты y
        fistp   y                       ;Запись её в память в формате целого
                                        ;числа с звлечением из стека
        fild    rx                      ;Загрузка радиуса по координате x
        fmul                            ;Вычисление координаты x
        fistp   x                       ;Запись её в память в формате целого
                                        ;числа с извлечением из стека
        fwait                           ;Ожидание завершения работы сопроцессора
        call    point                   ;Вывод точки на экран
        inc     angl                    ;Приращение угла
        loop    do
;==============Вторая окружность============================
do2:
        fld     x360                    ;Коэффициент градус-радианы в стек
        fild    angl                    ;Очередное значение угла в стек
        fmul                            ;перевод в радианы
        fsincos                         ;sin(x) -> ST(1), cos(x) -> ST(0)
        fild    ry2                     ;Загрузка радиуса по координате y
        fmul                            ;Вычисление координаты y
        fistp   y                       ;Запись её в память в формате целого
                                        ;числа с звлечением из стека
        fild    rx2                     ;Загрузка радиуса по координате x
        fmul                            ;Вычисление координаты x
        fistp   x                       ;Запись её в память в формате целого
                                        ;числа с звлечением из стека
        fwait                           ;Ожидание завершения работы сопроцессора
        call    point2                  ;Вывод точки на экран
        inc     angl                    ;Приращение угла
        loop    do2
 
;==============конец 3 окружностей=============================
;Задержка до нажатия клавиши
        mov     AH, 8
        int     21h
 
        mov     AX, 4C00h               ;Выод в DOS с кодом ошибки 0
        int     21h
 
main            endp
 
text    ends
 
stk     segment stack   'stack'
        db      1024 dup(?)
stk     ends
 
end     main
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.12.2016, 21:04
Ответы с готовыми решениями:

Через память передавать координаты и размер окружности с родительского процесса в дочерний
Написать программу, в которой задаются координаты и размер окружности, а в дочернем процессе в...

Определите размер шара, используя сумму трехзначных чисел в качестве площади круга, окружности круга и радиуса
Определите размер шара, используя сумму трехзначных чисел в качестве площади круга, окружности...

Определить какая из точек лежит на окружности, какая внутри окружности, а какая вне окружности
Не могу не как понять какую формулу писать Вот задания Заданы координаты двух точек А(х,у) и...

Задан радиус окружности. Определите длину окружности и площадь соответствующего круга
Помогите пожалуйста , не знаю как сделать !

2
Модератор
Эксперт по электронике
8476 / 4335 / 1642
Регистрация: 01.02.2015
Сообщений: 13,461
Записей в блоге: 8
08.12.2016, 22:25 2
Лучший ответ Сообщение было отмечено Gasssss как решение

Решение

Узнаю код из книги
Рудаков П.И., Финогенов К.Г. программируем на языке ассемблера IBM PC
Который я дополнял, а теперь и мои дополнения дополнили.

Цитата Сообщение от Gasssss Посмотреть сообщение
как уменьшить размер второго к примеру
Я бы подумал, чем характеризуется окружность и изменил бы этот параметр.
0
1 / 1 / 0
Регистрация: 02.12.2014
Сообщений: 66
09.12.2016, 00:04  [ТС] 3
Не совсем понял

Добавлено через 48 минут
Пардон, я вас понял. Спасибо большое)
0
09.12.2016, 00:04
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.12.2016, 00:04
Помогаю со студенческими работами здесь

Метод для создания окружности, которая вмещает в себя две окружности
Добрый вечер. Подскажите пожалуйста, есть ли специальный метод, который может нарисовать...

Вычислить площадь большей окружности, меньшей окружности и кольца, образованного ими
Помогите! Разработайте программу с использованием класса Ring (кольцо), в котором реализовано...

Есть код окружности, но не могу сделать заливку самой окружности по пикселям
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data;...

Найти радиус окружности и площадь круга по заданной длине окружности
Дана длина L окружности. Найти ее радиус R и площадь S круга, ограниченного этой окружностью,...

Начертить окружность по координатам середины окружности и точки лежащей на окружности
Добрый вечер. Подскажите, как начертить окружность по координатам середины окружности и точки...

По заданному радиусу окружности R определить длину окружности и площадь круга.
По заданному радиусу окружности R определить длину окружности и площадь круга.


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru