ViewportHeight=pic1.ScaleHeight
Amed писал(а):а) находим самую удаленную от нуля по y точку графика (HighestPoint).
б) строим кривую, увеличенную в (ViewportHeight/HighestPoint) раз.
Это кому это он так задолжалZoomie писал(а):при чем этот коэффецент должен быть <=1
Zoomie писал(а):Гм... всё просто как дважды два.
1. Находим самйю высокую точку графика
2. Находим отношение между высотой PictureBoxа и высотой точки
3. Рисуем график, где высота каждой точки равна высоте каждой точки * на полученный ранее коэффецент (при чем этот коэффецент должен быть <=1)
Вот так вот!
Zoomie писал(а):Гм... зачем???
ВБ еще никому не запрещал эксперементировать!
В крайнем случае для гармонии исподьзовать тот же коэфицент и для X...
Zoomie писал(а):То бишь не выходить за границы?
Ща подумем...
GAGArin писал(а):Может я чего-то не понимаю, но зачем тогда ТекстБокс?
Диагональная линия из 0,0 всегда одна. Если её вписывать в картинку, то значение из ТекстБокса не нужно (нужны лишь габариты картинки) Аналогично с кругом, чтобы вписался в картинку есть лишь одно значение ТекстБокса. Может я торможу?
PS кстати писать .Text по моему в VB6 не обязательно, а вот переводить типы желательно не особо надеясь на Variant.
If Text1.Text * 3 > Picture1.ScaleHeight Then MsgBox "график вышел за границу по Y!"
If Text1.Text * 3 > Picture1.ScaleWidth Then MsgBox "график вышел за границу по X!"
Zoomie писал(а):tatarin, тебе это нужно для графика?
Dim PointY() As Integer
Dim I As Integer
Dim kX As Single
Dim kY As Single
Dim HighPoint As Integer
Dim LastX As Integer
Dim LastY As Integer
Const PointsCount = 20
Private Sub Form_Load()
Randomize Timer
LastX = 0
LastY = Picture1.Height
ReDim PointY(1 To PointsCount) As Integer
For I = LBound(PointY) To UBound(PointY)
PointY(I) = Int(Rnd * Picture1.Height \ 2)
Next I
kX = Picture1.Width / (UBound(PointY) - LBound(PointY))
For I = LBound(PointY) To UBound(PointY)
If PointY(I) > HighPoint Then
HighPoint = PointY(I)
End If
Next I
kY = Picture1.Height / HighPoint / 2
For I = LBound(PointY) To UBound(PointY)
Picture1.Line (LastX, LastY)-(I * kX, Picture1.Height - PointY(I) * kY), vbBlue
LastX = I * kX
LastY = Picture1.Height - PointY(I) * kY
Next I
End Sub
Сейчас этот форум просматривают: SemrushBot, Yandex-бот и гости: 125