Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.08.2010, 09:26   #1
Kracozebr
Пользователь
 
Регистрация: 16.07.2010
Сообщений: 17
По умолчанию Масштабирование графиков в VB

У меня есть код проги:
Код:
        
 Private Sub cbRas_Click()
 cl(1) = vbBlue: cl(2) = vbGreen: cl(3) = vbRed
n = 3: m = 120: ReDim a1(n, m)
w = 120: he = 250
Picture1.Scale (-0.05 * w, -0.1 * he)-(1.12 * w, he)
he1 = 0.5: he = he * he1
'=================массив
For j = 0 To m
  a1(1, j) = xm(j)
  a1(2, j) = ym(0, j)
  a1(3, j) = ym(1, j)
  Next
Picture1.Cls
 For j = 1 To UBound(a1, 2)
a1(1, j) = j
Next j

'==================
Call sk
End Sub
Private Sub sk()
'сетка
'ось OX
Picture1.Line (0, he * 1.15)-(w, he * 1.15)
For i = 0 To w Step 7 'шаг сетки по ОХ
Picture1.Line (i, he - he1 * 250)-(i, he + 125 * he1)
Picture1.Print xt(0 + i / 4)
Picture1.Print ("              По оси х время в секундах")
Picture1.Print ("DRI="), DRI

'ось OY
Picture1.Line (0, 0)-(0, he)
   For i = 0 To he Step 12 'шаг сетки по OY
   Picture1.Line (0 - he1, 1.5 * i)-(0 + 240 * he1, 1.5 * i)
If he - i <> 0 Then Picture1.Print 4 - i / 24
   Next i
 
 
'график
For i = 3 To 3
Picture1.PSet (0, he * 1.15)
For j = 0 To UBound(a1, 2)
Picture1.Line -(a1(1, j), he * 1.15 - 35 * a1(i, j)), cl(i)
Next j
Next i
With Picture1
.Top = 0: .Left = 0
.Width = 15000: .Height = 8000 '
.AutoRedraw = True
End With
cbRas.Top = Picture1.Height + 100
cbRas.Left = Picture1.Left + Picture1.Width - cbRas.Width
Me.Width = Picture1.Width + 200
Me.Height = Picture1.Height + cbRas.Height + 700
 
    End Sub
Он выводит график с двумя линиям с координатами (xm(j),ym(0,j))
и (xm(j),ym(1,j)), но код несовершенен((((( .У осей координат свой масштаб, а у графика свой, то есть они не согласованны. забивая разные данные в массивы, графики могут быть "приплюснутыми" всмысле очень маленькими по оси у и тяжело разглядеть значения, другие же выходят за пределы графика и линии прерываются. Как бы сделать такое согласованное масштабирование осей и графика, чтобы найбольшее значение находилось в самом верху оси у, всмысле чтобы график все время занимал все пространство независимо от введеных данных. здесь у меня значения по у фиксированные они не изменяются взависимости от данных:If he - i <> 0 Then Picture1.Print 4 - i / 24. то есть верхний предел 12 и снижается до 0.

Последний раз редактировалось Stilet; 03.08.2010 в 10:03.
Kracozebr вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
масштабирование формы street-walker Общие вопросы Delphi 8 07.01.2010 22:43
Масштабирование Button assasin Общие вопросы C/C++ 4 18.08.2009 17:46
Масштабирование Град Microsoft Office Excel 6 24.10.2008 09:23
масштабирование Alex_Pro Общие вопросы .NET 0 21.05.2008 18:21
масштабирование lenivec Общие вопросы Delphi 1 23.02.2008 07:07