Здесь Вы можете найти или обсудить множество различных алгоритмов, их описаний, реализаций на VB и других языках.
-
Nord777
-
- Гуру
-
-
- Сообщения: 1144
- Зарегистрирован: 22.02.2004 (Вс) 13:15
- Откуда: Подольск
Nord777 » 01.01.2008 (Вт) 17:54
Реализация на VB.Net
- Код: Выделить всё
''' <summary>
''' Алгоритм Брезенхейма для построения окружности
''' </summary>
''' <param name="xc">координата X центра окружности</param>
''' <param name="yc">координата Y центра окружности</param>
''' <param name="r">Радиус окружности</param>
Sub DrawCircle(ByVal xc%, ByVal yc%, ByVal r%)
Dim G As Graphics = Me.CreateGraphics
Dim x%, y%, d%
d = 3 - 2 * r
x = 0 : y = r
Do While x <= y
'При помощи FillRectangle рисуется отдельный пиксель ))
'PS: Не самый быстрый способ отрисовки(только для примера)
G.FillRectangle(Brushes.Black, x + xc, y + yc, 1, 1)
G.FillRectangle(Brushes.Black, x + xc, -y + yc, 1, 1)
G.FillRectangle(Brushes.Black, -x + xc, -y + yc, 1, 1)
G.FillRectangle(Brushes.Black, -x + xc, y + yc, 1, 1)
G.FillRectangle(Brushes.Black, y + xc, x + yc, 1, 1)
G.FillRectangle(Brushes.Black, y + xc, -x + yc, 1, 1)
G.FillRectangle(Brushes.Black, -y + xc, -x + yc, 1, 1)
G.FillRectangle(Brushes.Black, -y + xc, x + yc, 1, 1)
If d < 0 Then
d = d + 4 * x + 6
Else
d = d + 4 * (x - y) + 10
y -= 1
End If
x += 1
Loop
G.Dispose()
End Sub
Microsoft Visual Studio 2008
Microsoft .NET Framework 3.5
Вернуться в Алгоритмы
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4