|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
05.04.2023, 16:55 | #1 |
Пользователь
Регистрация: 21.11.2022
Сообщений: 84
|
Не могу понять как реализовать функции рисования окружности и отрезков для работы кода
По заданию надо нарисовать яхту с помощью отрезков и окружности на tasm вот что смог написать но в коде не могу понять как реализовать функции и чтоб заработал код
Код:
|
05.04.2023, 19:47 | #2 |
Участник клуба
Регистрация: 17.04.2022
Сообщений: 1,833
|
Возьмите уравнения прямой на плоскости и по координатам двух точек найдите коэффициенты для уравнения:
Код:
А для всех остальных случаев можно сделать два цикла, зная коэффициенты k и b Тогда для рисования линии надо написать два последовательных цикла. В первом перечисляя координаты min(x1, x2) -> max(x1, x2) и вычисляя y` = k*x` + b рисуете точки по найденным координатам (x`, y`) Во втором теперь перечисляете координаты min(y1, y2) -> max(y1, y2) и вычисляя x` = (y` - b) / k рисуете точки по найденным координатам (x`, y`) Зачем же нужны два цикла. Можно обойтись и одним, но тогда надо проверять угол наклона прямой. Иначе, если прямая имеет угол от -45 до 45 градусов, тогда она будет нарисована в виде отдельных точек (если оставить только первый цикл, но только второй цикл её нарисует нормально). С окружностью все довольно просто. Достаточно посчитать координаты дуги от 0 до 45 градусов и зеркально их поменять: A(x`, y`), B(y`, x`), C(-y`, x`), D(-x`, y`), E(-x`, -y`), F(-y`, -x`), G(y`, -x`), H(x`, -y`) Эти точки позволят зеркально нарисовать дугу 0 - 45 градусов и составить из неё окружность. Уравнение для рисования окружности же sqr(x` - x1) + sqr(y` - y1) = sqr(r) |
05.04.2023, 22:51 | #3 |
Старожил
Регистрация: 23.10.2010
Сообщений: 2,309
|
Тут, так думаю, лучше познакомиться с алгоритмами Брезенхэма для рисования линий и окружностей.
Делал это много лет назад, но и сегодня в Сети есть решения на ассемблере.
Как-то так, ...
|
05.04.2023, 23:15 | #4 |
Участник клуба
Регистрация: 17.04.2022
Сообщений: 1,833
|
|
06.04.2023, 03:21 | #5 |
Участник клуба
Регистрация: 17.04.2022
Сообщений: 1,833
|
Если я ни где не ошибся в формулах, тогда вот рисование линий
Код:
Код:
Последний раз редактировалось macomics; 06.04.2023 в 03:25. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Не могу понять тему курсовой работы. | Artsiom | Помощь студентам | 3 | 18.04.2017 09:12 |
НЕ могу понять в чем проблема моего кода | paul_8 | C# (си шарп) | 5 | 13.10.2013 23:06 |
не могу понять пример работы с указателем | Иаковъ | Помощь студентам | 6 | 04.07.2013 11:45 |
Void(не могу понять участок кода) | Slems | Visual C++ | 5 | 03.09.2012 16:53 |
Функция рисования окружности в Delphi | virtaanen | Общие вопросы Delphi | 8 | 31.10.2009 13:13 |