Диаграмма

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
xqz_me
Постоялец
Постоялец
 
Сообщения: 413
Зарегистрирован: 04.12.2005 (Вс) 14:58

Сообщение xqz_me » 17.02.2006 (Пт) 15:02

Спасибо. Сделал так:
Код: Выделить всё
Const pi = 3.141592654

Private Sub Command1_Click()
Cls
Dim a As Double
a = InputBox(a)
Me.FillStyle = 0
Me.FillColor = vbBlue
Me.ScaleMode = vbPixels
Me.Circle (100, 100), 50, vbBlue, -pi / 2, -pi * 2 * a
End Sub

Терь ворос... Почему только до третей четверти при а = 1 рисуется и заливается?

Kovu
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 924
Зарегистрирован: 29.04.2005 (Пт) 17:38

Сообщение Kovu » 17.02.2006 (Пт) 15:05

Я в шоке
*Падает в обморок
Если всё делать своими ручками, они скоро отвалятся !

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 17.02.2006 (Пт) 15:08

xqz_me
извини меня (прости за каламбур), но ты в школу ходил(ешь)?
ты хотел заливку сектора, тебе kovu ее сделал. а математике тебя учить никто не нанимался :)

xqz_me
Постоялец
Постоялец
 
Сообщения: 413
Зарегистрирован: 04.12.2005 (Вс) 14:58

Сообщение xqz_me » 17.02.2006 (Пт) 15:08

нет, я больше не могу это читать

Я в шоке
*Падает в обморок

Гы... :lol:

А если серёзно?

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 17.02.2006 (Пт) 15:10

почитай учебник (не помню какого класса) про окружность и круг

xqz_me
Постоялец
Постоялец
 
Сообщения: 413
Зарегистрирован: 04.12.2005 (Вс) 14:58

Сообщение xqz_me » 17.02.2006 (Пт) 15:16

Хожу. И не понимаю, кто придуиал такие извращения. Начало сектора - 0 радиан (правая часть единичной окружности). Нет, надо писать -pi/2 ( который почему-то стал верхом окружности, а не низом). Если написать -0, чтобы начинать заливать справа, вообще перестаёт заливать. Что это за дебилизм? Конец окружности - 2pi, совпадает с началом, т.е. 0 радиан. А тут это них окружности почему-то. Что за дребедень?

Kovu
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 924
Зарегистрирован: 29.04.2005 (Пт) 17:38

Сообщение Kovu » 17.02.2006 (Пт) 15:20

Me.Circle (100, 100), 50, vbBlue, -pi *2, -pi * 2 * a
Андерстэнд?
Если всё делать своими ручками, они скоро отвалятся !

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 17.02.2006 (Пт) 15:21

The Circle method draws a circle, an ellipse, or an arc on a Report object when the Print event occurs.

Syntax

Код: Выделить всё
object.Circle [Step](x, y), radius[, [color][, [start][, [end][, aspect]]]]


start, end
Single values. When a partial circle or ellipse is drawn, the start and end arguments specify (in radians) the beginning and end positions of the arc. The default value for the start argument is 0 radians; the default for the end argument is 2 pi radians. The range for both is –2 pi radians to 2 pi radians.

When drawing pie slices, if you need to draw a radius to angle 0 to form a horizontal line segment to the right, specify a very small negative value for the start argument rather than 0. For example, you might specify –.00000001 for the start argument.

xqz_me
Постоялец
Постоялец
 
Сообщения: 413
Зарегистрирован: 04.12.2005 (Вс) 14:58

Сообщение xqz_me » 17.02.2006 (Пт) 15:31

Усё. Дошло. Всем спасибо. :)

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 17.02.2006 (Пт) 15:36

Код: Выделить всё
Option Explicit

Private Const PI As Double = 3.14159265358979


Private Sub Form_Click()
    Dim sngHCtr As Single, sngVCtr As Single
    Dim sngRadius As Single
    Dim sngStart As Single, sngEnd As Single

    sngHCtr = Me.ScaleWidth / 2         ' Horizontal center.
    sngVCtr = Me.ScaleHeight / 2        ' Vertical center.
    sngRadius = Me.ScaleHeight / 3      ' Circle radius.
    ' Draw circle.
    Me.FillColor = vbGreen
    Me.FillStyle = 0
    Me.Circle (sngHCtr, sngVCtr), sngRadius
    sngStart = -0.00000001              ' Start of pie slice.
    sngEnd = -2 * PI / 3                ' End of pie slice.
    Me.FillColor = vbRed                ' Color pie slice red.
    Me.FillStyle = 0                    ' Fill pie slice.
    ' Draw pie slice within circle.
    Me.Circle (sngHCtr, sngVCtr), sngRadius, , sngStart, sngEnd

End Sub

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 17.02.2006 (Пт) 18:22

Ка же долог подчас путь к истине!!! Нет слов... :(
Весь мир матрица, а мы в нем потоки байтов!

xqz_me
Постоялец
Постоялец
 
Сообщения: 413
Зарегистрирован: 04.12.2005 (Вс) 14:58

Сообщение xqz_me » 19.02.2006 (Вс) 23:03

Код: Выделить всё
Dim c
Dim t
Private Function chart1func(x As Integer, y As Integer, r As Integer, val As Double, delay As Double)
For c = 0 To val
Cls
Picture1.FillStyle = 0
Picture1.FillColor = vbRed
Picture1.ScaleMode = vbPixels
Picture1.Circle (x, y), r, vbBlack, -pi * 2, -pi * 2
Picture1.FillStyle = 0
Picture1.FillColor = vbBlue
Picture1.ScaleMode = vbPixels
Picture1.Circle (x, y), r, vbBlack, -pi * 2, -pi * 2 * val / 100
t = Timer
Do While Timer < t + delay
DoEvents
Loop
Next c
chart1func = 1
End Function

Private Sub Command2_Click()
If chart1func(100, 100, 50, 75, 0.02) < 0 Then MsgBox "shit"
End Sub


Почему так только круг рисуется?

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 20.02.2006 (Пн) 12:21

еще раз посмотри внимательно:
Вложения
PieChart.rar
(4.47 Кб) Скачиваний: 21

Пред.

Вернуться в Visual Basic 1–6

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

Сейчас этот форум просматривают: SemrushBot, Yandex-бот и гости: 89

    TopList