Проблема с графикой и классом GraphicsPath

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

AnarCky
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 229
Зарегистрирован: 20.11.2006 (Пн) 20:12
Откуда: Россия, Екатеринбург.

Проблема с графикой и классом GraphicsPath

Сообщение AnarCky » 20.01.2007 (Сб) 14:08

Мучаюсь с этим кодом.
Проблема в том, что он выдает совсем не то что надо.

Вопрос: Можно обойтись как-нить без этих средних линий, соединяющих дуги и между концами одной дуги?
Вопрос2: Если кто-нибудь знает способ более простого создания прямоугольника с закругленнами краями, большая просьба сообщить.

Код: Выделить всё
    Private Sub Form2_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint
        Dim GR As Graphics = Me.CreateGraphics
        Dim Put As New Drawing2D.GraphicsPath

        Put.AddArc(10, 10, 20, 20, 180, 90)
        Put.AddLine(10, 20, 10, 280)

        Put.AddArc(10, 270, 20, 20, 90, 90)
        Put.AddLine(20, 290, 280, 290)

        Put.AddArc(270, 270, 20, 20, 0, 90)
        Put.AddLine(290, 20, 290, 280)

        Put.AddArc(270, 10, 20, 20, 270, 90)
        Put.AddLine(20, 10, 280, 10)

        GR.DrawPath(Pens.Black, Put)    End Sub
Вложения
temp5.png
temp5.png (3.26 Кб) Просмотров: 297
Компьютеры были придуманы чтобы исправлять ошибки людей. Но кто же тогда будет исправлять ошибки компьютера?..

Shurrik
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 110
Зарегистрирован: 20.05.2004 (Чт) 5:35
Откуда: Керчь, Крым

Сообщение Shurrik » 21.01.2007 (Вс) 7:36

Попробуй мой фрагмент
Sub RisPu(ByVal p As GraphicsPath, ByVal r As Rectangle, ByVal d0 As Integer)
p.StartFigure()
Dim ng As Single = 180
Dim d As Integer = Math.Abs(d0)
p.AddArc(r.X, r.Y, d, d, 180, 90)
p.AddArc(r.X + r.Width - d, r.Y, d, d, 270, 90)
p.AddArc(r.X + r.Width - d, r.Y + r.Height - d, d, d, 0, 90)
p.AddArc(r.X, r.Y + r.Height - d, d, d, 90, 90)
p.CloseFigure()
End Sub
Колесо: Хочешь жить? Умей вертеться.

AnarCky
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 229
Зарегистрирован: 20.11.2006 (Пн) 20:12
Откуда: Россия, Екатеринбург.

Сообщение AnarCky » 21.01.2007 (Вс) 13:50

Все в порядке - работает.
Спасибо!
Компьютеры были придуманы чтобы исправлять ошибки людей. Но кто же тогда будет исправлять ошибки компьютера?..


Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 88

    TopList