Форум программистов, компьютерный форум, киберфорум
Assembler, MASM, TASM
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
10 / 10 / 1
Регистрация: 04.11.2009
Сообщений: 147

Рисование эллипса с использованием переменных Win Api

21.12.2011, 20:58. Показов 2267. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Мне казалось, что я ничего особенно необычного не делаю, но опыт показал, что по каким-то причинам функция WinAPi <Ellipse> спокойно отрабатывает, если при вызове писать числа. И не отрабатывает, или отрабатывает очень странно, если в качестве аргументов - переменные с числами.
Если я просто заношу в переменные нужные мне значения чисел, то рисуется странная черная линия... Если высчитываю - ничего не выводится.
То есть нет возможности использовать эту функцию с переменными? А если есть, но я ошибаюсь. Подскажите пожалуйста)
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
x1         dw ?
x2         dw ?
y1         dw ?
y2         dw ?
...
DrawEllipse Proc  Rad:WORD, Number:WORD, EColor:WORD, Hdc: HDC
    mov  ax, EColor
    mov  buf, 7 
    mul  buf
    mov  bx, ax
    invoke CreateSolidBrush, ColorMas[bx]
    invoke SelectObject, Hdc, eax 
    mov  bx, Number
    shl  bx, 1
    sub  bx, 1
    xor  bx, bx
    mov  bx, 1
    mov  ax, Centr[bx]
    sub  ax, Rad
    mov  x1, ax              ;x1=centr-rad
    mov  ax, Centr[bx]
    add  ax, Rad
    mov  x2, ax              ;x2=centr+rad
    inc  bx
    mov  ax, Centr[bx]
    sub  ax, Rad
    mov  y1, ax              ;y1=centr-rad
    mov  ax, Centr[bx]
    add  ax, Rad
    mov  y2, ax              ;y2=centr+rad
    invoke Ellipse, Hdc, x1, y1, x2, y2
    ret   
DrawEllipse Endp
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.12.2011, 20:58
Ответы с готовыми решениями:

Google maps API рисование Эллипса
Здравствуйте возник вопрос, как с помощью функций google maps API нарисовать эллипс привязанный к точке?

Перемещение фигуры по траектории эллипса (с использованием динамических переменных)
Сделал программу(предоставлена ниже), учитель сказал, что ее нужно было сделать с использованием динамических переменных. Как ее...

Создание окна с использованием Win APi
Здравствуйте! Уже несколько дней мучаюсь с такой проблемой: Нужно создать окно с горизонтальной и вертикальной прокруткой. Горизонтальная...

2
 Аватар для Goodwin98
2537 / 833 / 10
Регистрация: 31.05.2009
Сообщений: 1,668
21.12.2011, 21:33
Скобочки поставить [] не ?
1
10 / 10 / 1
Регистрация: 04.11.2009
Сообщений: 147
22.12.2011, 17:18  [ТС]
Не, все тоже самое)

Добавлено через 49 минут
Оказывается ему двойное слово нужно было) Теперь с прямым заданием все отрабатывает..Буду мучаться с вычислением теперь)

Добавлено через 17 часов 28 минут
У меня категорические не получается с вычислением...Может тут дело в том, что я заношу данные (Centr) из массива. А как я до этого сталкивалась, работа с массивами как-то необычна для winapi(может и для асма). Подскажите как лучше сделать в таком случае? Мне надо чтобы где-то хранились центры моих эллипсов, чтобы можно было бы просто по номеру эллипса построить его с заданным радиусом и цветом(с цветом проблем нету)
Assembler
1
Centr      dd 0,50,50,200,200,375,125,625,125,875,125,225,375,475,375,725,375
Добавлено через 1 час 22 минуты
У меня к сожалению не идут отладчики из-за 64-разрядной винды...Поэтому другого способа кроме как, спрашивать, я не вижу) Ну так, еще методом проб и ошибок. Н-р именно таким методом, я решила что для того чтобы хранить цвета мне надо 7 элементов под каждый цвет. Только так они видимо не наслаиваются друг на друга. Хотя теоретически каждый цвет спокойно должен был вмешаться в один элемент размером с двойное слово...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.12.2011, 17:18
Помогаю со студенческими работами здесь

Диалог выбора файла в си с использованием win api
Помогите сделать диалоговое окно для выбора файла при нажатии на кнопку в си с использованием winapi. Уже все обгуглил, или я тупой или не...

Первая программа с использованием Win API. Не запускается текстовый файл
есть вот такая программа,которая должна запустить на исполнение файл с флешки: #include &lt;windows.h&gt; #include &lt;conio.h&gt; ...

Рисование эллипса
Нужно нарисовать 5 эллипсов, а внутри ещё 5 с помощью OpenGL, но сейчас не об этом, ПОДСКАЖИТЕ, пожалуйста, как нарисовать этот эллипс?...

Рисование эллипса
в общем суть задачи такая. есть некоторый panel, на котором расположена матрица из лейблов. (что-то вроде замены пикселей, только...

Рисование эллипса
Является ли приемлемой такая реализация рисования эллипса? uses GraphABC; procedure RLine(x, y, x2, y2: real):=Line(Round(x),...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита, которое может. . .
Команды "Заполнить" и "Очистить" на форме документа
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". На примере нетипового документа разработанного в конфигурации КА2. В качестве источника данных указан регистр накопления, в который записываются данные о. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru