0 / 0 / 0
Регистрация: 16.11.2014
Сообщений: 7
1

Алгоритм Брезенхема для генерации окружности

08.12.2014, 20:35. Показов 4548. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Что-то не получается, кто может помочь?
(Данный алгоритм также является целочисленным. В соответствии с ним полагается, что генерируется окружность с целочисленным радиусом R и центром в точке (x = 0, y = 0) (что всегда можно сделать, связав координаты x и y с координатной сеткой растра простым преобразованием координат). Изначально пошагово строится четверть окружности в первом квадранте. Причем ее построение начинается в точке (x = 0, y = R) и осуществляется в направлении по часовой стрелке. )

Pascal
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
    program p1;
    uses GraphABC;
    Procedure Circle(x,y,rr:integer);
var xi,yi,r,d,lim,s:integer;
label 1,F,3,4,10,20,30;
Begin
r:=rr;
xi:=0; yi:=r; d:=2*(1-r); lim:=0;
1: SetPixel(xi+x,yi+y,clRed);
   SetPixel(xi+x,-yi+y,clRed);
   SetPixel(-xi+x,yi+y,clRed);
   SetPixel(-xi+x,-yi+y,clRed);
   if yi<lim then goto 4;
   if d<0 then goto F;
   if d>0 then goto 3;
   if d=0 then goto 20;
F: s:=2*d+2*yi-1;
   if s<=0 then goto 10;
   if s>0 then goto 20;
3: s:=2*d+2*xi-1;
   if s<=0 then goto 20;
   if s>0 then goto 30;
10:xi:=xi+1;            
   d:=d+2*xi+1;
   goto 1;
20:xi:=xi+1;
   yi:=yi-1;
   d:=d+2*xi-2*yi+2;
   goto 1;
30:yi:=yi-1;
   d:=d-2*yi+1;
   goto 1;4:
end;
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.12.2014, 20:35
Ответы с готовыми решениями:

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

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

Алгоритм Брезенхема
Сегодня дали задание реализовать процедуру рисования линии используя SetPixel. Дали алгоритм...

Графика (алгоритм Брезенхема)
Необходимо написать программу в которой реализовать алгоритм Брезенхема для построения отрезка...

1
Почетный модератор
64291 / 47589 / 32740
Регистрация: 18.05.2008
Сообщений: 115,181
08.12.2014, 21:57 2
Какой-то код корявый и неполный, вот пример построения окружности по Брезенхему.
Pascal
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
uses graphABC;
var xc,yc:integer;
procedure bres_circle(xc,yc,r:integer);
 var x,y,d:integer;
 procedure sim(x,y:integer);
  begin
    setpixel(x+xc,y+yc,clRed);
    setpixel(x+xc,-y+yc,clRed);
    setpixel(-x+xc,-y+yc,clRed);
    setpixel(-x+xc,y+yc,clRed);
    setpixel(y+xc,x+yc,clRed);
    setpixel(y+xc,-x+yc,clRed);
    setpixel(-y+xc,-x+yc,clRed);
    setpixel(-y+xc,x+yc,clRed);
  end;
  begin
  d:=3-2*y;
  x:=0;
  y:=r;
  while(x <= y) do
    begin
     sim(x,y);
     if d<0    then d:=d+4*x+6
     else begin
     d:=d+4*(x-y)+10;
     dec(y)
    end;
  inc(x)
  end;
 end;
 begin
 xc:=windowwidth div 2;
 yc:=windowheight div 2;
 bres_circle(xc,yc,100);
 end.
Добавлено через 1 минуту
Алгоритм отсюда.
http://www.codenet.ru/progr/video/alg/alg4.php
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.12.2014, 21:57
Помогаю со студенческими работами здесь

Алгоритм Брезенхема для генерации окружности
Очень срочно, пожалуйста Нужно для матлаба

Алгоритм Брезенхема для генерации окружности
Нужно написать программу, которая чертит 100 окружностей со случайно выбранными параметрами,...

Алгоритм Брезенхема для генерации окружности C# OpenGl
Всем доброго времени суток. Возник очень важный вопрос. Как нарисовать круг по алгоритму Брезенхема...

Алгоритм Брезенхема для окружности
Здравствуйте, есть задание - Выполнить отрисовку окружностей радиусов 3*(R+9), 5*(R+9), 10*(R+9)...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru