Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
0 / 0 / 2
Регистрация: 22.10.2011
Сообщений: 66
1
.NET 4.x

Реализовать в виде процедуры BrezArc алгоритм построения дуги окружности

21.03.2012, 14:35. Показов 1980. Ответов 2
Метки нет (Все метки)

Постановка задачи:
Реализовать в виде процедуры BrezArc алгоритм построения дуги окружности (при построении дуги использовать алгоритм Брезенхема построения окружности).
Предполагается, что центр окружности, частью которой является дуга, находится в точке (a, b), ее радиус равен R, цвет C, начальный угол BeginAngle, конечный угол EndAngle. Все числа целые, углы заданы в градусах.
Алгоритм написан, был выполнен перегон с алгоритмического языка на С#, но пикселы почему то разрываются.

C#
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
//BrezArc алгоритм построения дуги окружности
        private void BrezArc(int x0, int y0, double g1, double g2, int r1, int hetverd, int hetverd2, Brush aa)
        {
            //угол стартовый и конечный
            g1 = Convert.ToDouble((Math.PI / 180.0) * g1);
            g2 = Convert.ToDouble((Math.PI / 180.0) * g2);
            Int32 x = Convert.ToInt32(r1 * Math.Cos(g2));
            Int32 y = Convert.ToInt32(r1 * Math.Sin(g2));
            int r = 1;
            int d = (x + 1) * (x + 1) + (y - 1) * (y - 1) - r1 * r1;
            int lim = Convert.ToInt32(r * Math.Sin(g1));
            int dd;
            while (y > lim)
            {
                Plot(hetverd * (x + x0), hetverd2 * (y + y0), aa);
                if (d < 0)
                {
                    dd = 2 * d + 2 * y - 1;
                    if (dd <= 0) { x++; d += (2 * x + 1); }
                    else { x++; y--; d += (2 * x - 2 * y + 2); }
                }
                if (d > 0)
                {
                    dd = 2 * d - 2 * x - 1;
                    if (dd <= 0) { x++; y--; d += (2 * x - 2 * y + 2); }
                    else { y--; d += (-2 * y + 1); }
                }
                if (d == 0) { x++; y--; d += (2 * x - 2 * y + 2); }
            }
        }
Plot - функция которая ставит точку.
Фото:
0
Миниатюры
Реализовать в виде процедуры BrezArc алгоритм построения дуги окружности  
Заказывайте контрольные, курсовые и дипломы здесь.
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.03.2012, 14:35
Ответы с готовыми решениями:

Алгоритм построения окружности
Подскажите с помощью какого алгоритма можно построить окружность на TASM! Добавлено через 1 час...

Алгоритм Брезенхема построения окружности на С++
помогите найти или написать программу алгоритм Брезенхема построения окружности на С++ для Borland...

Напишите программу расчета длины дуги окружности известного радиуса, если задана (в градусах) величина угла дуги
Напишите программу расчета длины дуги окружности известного радиуса, если задана (в градусах)...

Длина окружности и площадь круга, Диалоговый алгоритм(Процедуры)
1. Постройте диалоговой алгоритм, позволяющий выводить несколько графиков по выбору в одной системе...

2
0 / 0 / 2
Регистрация: 22.10.2011
Сообщений: 66
21.03.2012, 16:29  [ТС] 2
Там в начале r=r1 а не 1.
0
0 / 0 / 2
Регистрация: 22.10.2011
Сообщений: 66
23.03.2012, 00:21  [ТС] 3
ap...
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.03.2012, 00:21

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Реализовать рекурсивный алгоритм построения кривых Гильберта
Реализовать рекурсивный алгоритм построения кривых Гильберта.

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

Реализовать рекурсивный алгоритм построения цепочки из имеющегося набора костей домино
Реализовать рекурсивный алгоритм построения цепочки из имеющегося набора костей домино.

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


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.