С Новым годом! Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/21: Рейтинг темы: голосов - 21, средняя оценка - 4.57
0 / 0 / 0
Регистрация: 12.03.2012
Сообщений: 26
1

алгоритм Брезенхема

23.05.2013, 00:24. Показов 3782. Ответов 7

Author24 — интернет-сервис помощи студентам
нужно построить окружность по алгоритму Брезенхема
1. с вводом центра окружности и радиуса
2. центр окружности задается нажатием на левую клавишу мышки и вводом радиуса



если не сложно с пояснениями
заранее спасибо
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.05.2013, 00:24
Ответы с готовыми решениями:

Алгоритм Брезенхема
Построить график функции y=x^2. График строится с помощью отрезков. Для построения отрезков...

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

Алгоритм Брезенхема
дорогие форумчане!не могли бы помочь в написании вот такой программки в delphi..... Построить...

Алгоритм брезенхема
Привет! Итак соорудил кодище с Алгоритмом Брезенхема. Но он позволяет по чему то рисовать линии...

7
13 / 13 / 0
Регистрация: 06.06.2009
Сообщений: 34
23.05.2013, 00:56 2
Алгоритм Брезенхема построения окружности там же пример.
1
0 / 0 / 0
Регистрация: 12.03.2012
Сообщений: 26
23.05.2013, 06:55  [ТС] 3
к сожалению там код программы для C , а мне нужен для Delphi

Добавлено через 7 минут
там для MS Visual Studio 2008-2012
0
13 / 13 / 0
Регистрация: 06.06.2009
Сообщений: 34
24.05.2013, 14:21 4
Цитата Сообщение от Влад Богорад Посмотреть сообщение
к сожалению там код программы для C , а мне нужен для Delphi
Влад не шутите так. Там один оператор цикла и 12 операторов присвоения, какой код Вы не можете адаптировать под Delphi?
1
0 / 0 / 0
Регистрация: 12.03.2012
Сообщений: 26
25.05.2013, 03:27  [ТС] 5
да я просто лох в этом, а этой мой курсовой проект...и хотелось бы его сдать хорошо что бы получить автомат)))
так что вот в чем заключается моя проблема(((
0
263 / 109 / 26
Регистрация: 16.03.2013
Сообщений: 272
25.05.2013, 15:32 6
Влад Богорад, недолгие поиски в Google привели меня к этому коду:
Delphi
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
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;
 
type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Button1: TButton;
    Edit3: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
{ Объявляем процедуру "DrawCircle", реализующая
алгоритм Брезенхема для рисования окружности }
procedure DrawCircle(x1, y1, R : Integer);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
 
var
Form1: TForm1;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.DrawCircle(x1, y1, R : Integer);
var x,y,error,delta : integer;
begin
InvalidateRect(0, nil, true); //Очистка Canvas, необходимая для затирания созданных кругов
x := 0;
y := R;
delta := (2 - 2 * R);
error := 0;
while y >= 0 do
begin
Canvas.Pixels[X1 + x,Y1 + y] := clBlack;
Canvas.Pixels[X1 + x,Y1 - y] := clBlack;
Canvas.Pixels[X1 - x,Y1 + y] := clBlack;
Canvas.Pixels[X1 - x,Y1 - y] := clBlack;
error := 2 * (delta + y) - 1;
if ((delta < 0) and (error <= 0)) then
begin
inc(x);
delta := delta + (2 * x + 1);
continue;
end;
error := 2 * (delta - x) - 1;
if ((delta > 0) and (error > 0)) then
begin
dec(y);
delta := delta + (1 - 2 * y);
continue;
end;
inc(x);
delta := delta + (2 * (x - y));
dec(y);
end;
end;
 
procedure TForm1.Button1Click(Sender: TObject);
begin
{ Здесь получаем необходимые данные из Edit-ов, содержащих информацию
для построения окружности по алгоритму Брезенхема, а именно координаты
центра окружности и радиус, реализуем их в процедуру DrawCircle }
if (Edit1.Text='') or (Edit2.Text='') or (Edit2.Text='') then
  showmessage('Введите координаты и радиус круга')
else
  DrawCircle(StrToInt(Edit1.Text),StrToInt(Edit2.Text), StrToInt(Edit3.Text));
end;
 
end.
Проверил его, окружности рисует (нужно вводить координаты центра по осям X и Y и радиуса).
Вот проект:
Вложения
Тип файла: zip Krug_Brezenhem.zip (160.9 Кб, 130 просмотров)
1
0 / 0 / 0
Регистрация: 12.03.2012
Сообщений: 26
26.05.2013, 03:29  [ТС] 7
спасибо огромное выручил)))
0
0 / 0 / 0
Регистрация: 12.03.2012
Сообщений: 26
17.06.2013, 12:20  [ТС] 8
ребята выручайте нужна помощь в построении блок схемы для этой программы
0
17.06.2013, 12:20
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.06.2013, 12:20
Помогаю со студенческими работами здесь

Реализовать алгоритм Брезенхема, для дуг окружности и дуг эллипса
Надо реализоавать алгоритм Брезенхема, для дуг окружности и дуг эллипса. Для окружности и самого...

Линии по алгоритму Брезенхема
В общем требуется рисовать линии с помощью клика мыши. Рисует только в определённых областях (видно...

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

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

Алгоритм Брезенхема для 3-х координат
есть алгоритм Брезенхема для построения прямой по двум координатам, а я хочу сделать по трём...

Алгоритмы Брезенхема.
Реализовать программу для построения прямоугольника с закруглявшими углами радиусом r. В программе...


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

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