Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 29.11.2013
Сообщений: 19

Построение графиков по формулам

29.04.2014, 19:59. Показов 1691. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте господа хорошие.
Прошу помощи в осуществление моей идеи,а именно...



Не знаю,как сделать,чтобы отображалось сразу несколько координат(формул) на осях.(Делать всё одной формулой очень сложно).+ как записать 2 последние формулы?(фиолетовые)
Если не сложно,то помогите.
+С описанием,где и что даёт,означает,ибо туплю маленько

Вот предыдущий код,если что.
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
Private Sub Command1_Click()
 Dim SngX As Single, i As Integer, y As Double
Dim XMin As Double, XMax As Double, YMin As Double, YMax As Double
PicGraph.Cls
 'Çàäàíèå ìàñøòàáà è íîâîé ñèñòåìû êîîðäèíàò
XMin = Val(Text1.Text)
XMax = Val(Text2.Text)
YMin = Val(Text3.Text)
YMax = Val(Text4.Text)
   If (XMin = XMax) Or (YMin = YMax) Then
        MsgBox "Íåâåðíûå êîîðäèíàòû"
        Exit Sub
   End If
 PicGraph.Scale (XMin, YMax)-(XMax, YMin)
 'Ïîñòðîåíèå ãðàôèêà ôóíêöèè
 For SngX = XMin To XMax Step 0.01
 
y = (7 * Sin(SngX))
 
    PicGraph.PSet (SngX, y), vbRed
 Next SngX
 'Ðèñóåì îñü Õ
 PicGraph.Line (XMin, 0)-(XMax, 0)
 For i = XMin To XMax
   PicGraph.PSet (i, 0)
   PicGraph.Print i
 Next i
 'Ðèñóåì îñü Y
 PicGraph.Line (0, YMax)-(0, YMin)
 For i = YMin To YMax
   PicGraph.PSet (0, i)
   PicGraph.Print i
 Next i
  End Sub
Заранее благодарен.
Всегда ваш,Артём.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
29.04.2014, 19:59
Ответы с готовыми решениями:

Построение графиков функции
Построить график y=N sin (Kk) где N и K будет задавать пользователь. Помогите!!!!!

Построение графиков функций.
Только осваиваю VB помогите плиииз. 1) Составить программу для построения кривой в полярных координатах на отрезке с шагом h = 0.1. ...

Построение графиков в VBA
Очень извиняюсь за столь чайниковскую просьбу, дело в том, что я VBA не силён, а в универе дали задание прописать в VB для EXEL типа...

12
Заблокирован
29.04.2014, 20:03
Цитата Сообщение от Артик Посмотреть сообщение
Всегда ваш,Артём.
Правда? Как мы можем тебя использовать, раз ты наш?
0
0 / 0 / 0
Регистрация: 29.11.2013
Сообщений: 19
29.04.2014, 20:06  [ТС]
Цитата Сообщение от inv.DS Посмотреть сообщение
Как мы можем тебя использовать, раз ты наш?
Вот так вот.А лучше по теме
0
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
29.04.2014, 20:15
Перепиши сюда формулы
0
0 / 0 / 0
Регистрация: 29.11.2013
Сообщений: 19
29.04.2014, 20:48  [ТС]
Цитата Сообщение от SoftIce Посмотреть сообщение
Перепиши сюда формулы
(1)
y = Abs(x / 2) - ((3 * sqrt(33) - 7) / 112) * (x ^ 2) - 3 + sqrt(1 - (Abs(Abs(x) - 2) - 1) ^ 2)





(2)
y = 9 * Sqr(Abs((Abs(x) - 1) * (Abs(x) - 0.75)) / ((1 - Abs(x)) * (Abs(x) - 0.75))) - 8 * Abs(x)


(3)
y=2.25 * Sqr((Abs((x - 0.5) * (x + 0.5))) / ((0.5 - x) * (0.5 + x)))


(4)
y = 3 * Abs(x) + 0.75 * Sqr(Abs((Abs(x) - 0.75) * (Abs(x) - 0.5)) / ((0.75 - Abs(x)) * (Abs(x) - 0.5)))



(5)
y = ((6 * Sqr(10)) / 7) + (1.5 - 0.5 * Abs(X)) * Sqr(Abs(Abs(X) - 1) / (Abs(X) - 1)) - ((6 * Sqr(10)) / 14) * Sqr(4 - (Abs(X) - 1) ^ 2)

(6) ???

y = (7 * Sin(x)) * Sqr(Abs(Abs(7 * Sin(x)) - 3) / (Abs(7 * Sin(x)) - 3))

Не факт,что они правильные.+ на картинке разве нету формул?
0
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
29.04.2014, 20:51
Цитата Сообщение от Артик Посмотреть сообщение
на картинке разве нету формул?
Есть, тока переписывать лень
Погоди немного, сейчас попробую воплотить...
0
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
29.04.2014, 21:15
Лучший ответ Сообщение было отмечено The trick как решение

Решение

Вот

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
Option Explicit
Const PI As Double = 3.14152, Sk As Integer = 8
Dim X As Double, Y As Double, r As Double, f As Double, t As Double
Dim a As Single, i As Single, P As PictureBox, L As Double
 
Private Sub Command1_Click()
    Call Scal
    Call Graf
    Call Coord
End Sub
 
Private Sub Graf_1()
    Dim x1 As Single
    For X = -Sk To Sk Step 0.001
           x1 = 1 - (Abs(Abs(X) - 2) - 1) ^ 2
           If x1 <= 0 Then GoTo m
           Y = Abs(X / 2) - ((3 * Sqr(33) - 7) / 112) * (X ^ 2) - 3 + Sqr(x1)
           P.Circle (X, Y), 0.03, 0
m:
    Next X
End Sub
 
Private Sub Graf_2()
    Dim x1 As Single
    For X = -Sk To Sk Step 0.001
            x1 = (1 - Abs(X)) * (Abs(X) - 0.75)
            If x1 <= 0 Then GoTo m
            Y = 9 * Sqr(Abs((Abs(X) - 1) * (Abs(X) - 0.75)) / (x1)) - 8 * Abs(X)
            P.Circle (X, Y), 0.03, RGB(255, 0, 0)
m:
    Next X
End Sub
 
Private Sub Graf_3()
    Dim x1 As Single
    For X = -Sk To Sk Step 0.001
        x1 = ((0.5 - X) * (0.5 + X))
        If x1 <= 0 Then GoTo m
        Y = 2.25 * Sqr((Abs((X - 0.5) * (X + 0.5))) / x1)
        P.Circle (X, Y), 0.03, RGB(0, 0, 255)
m:
    Next X
End Sub
 
Private Sub Graf_4()
    Dim x1 As Single
    For X = -Sk To Sk Step 0.001
            x1 = ((0.75 - Abs(X)) * (Abs(X) - 0.5))
            If x1 <= 0 Then GoTo m
            Y = 3 * Abs(X) + 0.75 * Sqr(Abs((Abs(X) - 0.75) * (Abs(X) - 0.5)) / x1)
            P.Circle (X, Y), 0.03, RGB(0, 255, 0)
m:
    Next X
End Sub
 
Private Sub Graf_5()
    Dim x1 As Single, x2 As Single
    For X = -Sk To Sk Step 0.001
            x1 = Abs(X) - 1
            If x1 <= 0 Then GoTo m
            x2 = 4 - (Abs(X) - 1) ^ 2
            If x2 <= 0 Then GoTo m
            Y = ((6 * Sqr(10)) / 7) + (1.5 - 0.5 * Abs(X)) * Sqr(Abs(x1) / (Abs(X) - 1)) - ((6 * Sqr(10)) / 14) * Sqr(x2)
            P.Circle (X, Y), 0.03, RGB(255, 255, 0)
m:
    Next X
End Sub
 
Private Sub Graf_6()
    Dim fi As Single, x1 As Single, x2 As Single
    For fi = -4 To 4 Step 0.001
    
             x1 = Abs(Abs(7 * Sin(fi)) - 3)
             x2 = Abs(7 * Sin(fi)) - 3
             If x2 <= 0 Then GoTo m
             X = 7 * Sin(fi) * Sqr(x1 / x2)
             
             x1 = Abs(3 * Cos(fi) + (3 * Sqr(33)) / 7)
             x2 = 3 * Cos(fi) + (3 * Sqr(33)) / 7
             If x2 <= 0 Then GoTo m
             Y = 3 * Cos(fi) * Sqr(x1 / x2)
             P.Circle (X, Y), 0.03, RGB(255, 0, 200)
m:
    Next fi
End Sub
 
 
Private Sub Graf()
      Call Graf_1
      Call Graf_2
      Call Graf_3
      Call Graf_4
      Call Graf_5
      Call Graf_6
End Sub
 
Private Sub Scal()
    Set P = Picture1
    P.FillStyle = 0
    'P.Cls
    'a = InputBox(" Введите a = ", "Ввод данных", 2.2)
   ' a = CSng(Replace(Text1.Text, ".", ","))
    P.DrawStyle = 0: P.AutoRedraw = True
    P.Scale (-Sk, Sk / 2)-(Sk, -Sk / 2)
    P.Line (-Sk, 0)-(Sk, 0), RGB(0, 0, 255) 'ocb X
    P.Line (0, -Sk)-(0, Sk), RGB(0, 0, 255)   'ocb Y
End Sub
 
Private Sub Coord()
'Kоординатная сетка
      P.DrawStyle = 2   ' Пунктирная линия
      For i = -Sk To Sk 'Step 0.5
       P.CurrentX = 0    ' оцифровка
       P.CurrentY = i
       P.Print Format$(i, "0.0")
       P.Line (-0.05, i)-(0.05, i)   ' засечка
       P.Line (-Sk, i)-(Sk, i)
      Next i
      For i = -Sk To Sk 'Step 0.5
       P.CurrentX = i    ' оцифровка
       P.CurrentY = 0
       P.Print Format$(i, "0.0")
       P.Line (i, -0.05)-(i, 0.05) ' засечка
       P.Line (i, -Sk)-(i, Sk)
      Next i
      P.DrawStyle = 2   ' Пунктирная линия
End Sub
 
Private Sub Command2_Click()
    End
End Sub
Миниатюры
Построение графиков по формулам  
Вложения
Тип файла: rar BATMAN.rar (10.1 Кб, 8 просмотров)
3
Модератор
10057 / 3902 / 884
Регистрация: 22.02.2013
Сообщений: 5,853
Записей в блоге: 79
29.04.2014, 21:28
Лучший ответ Сообщение было отмечено The trick как решение

Решение

Мой вариант
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
Option Explicit
 
Private Sub Form_Load()
    Dim old(6) As Single, x As Single, y As Single, d As Single, zx As Single, zy As Single, a As Single
    Width = 10500: Height = 7500: Scale (-7, 4)-(7, -4): AutoRedraw = True
    d = 0.001
    For x = -7 To 7 Step d
        If Abs(Fix(x) - x) < d Then
            DrawWidth = 1
            Me.Line (x, 4)-Step(0, -8), RGB(&H80, &H80, &H80)
            Me.Line (-7, x)-Step(14, 0), RGB(&H80, &H80, &H80)
            DrawWidth = 3
        End If
        If Abs(x) <= 4 Then
            y = F1(x): If old(0) <> 0 Then Me.Line (x - d, old(0))-(x, y)
            old(0) = y
        End If
        If Abs(x) <= 1 And Abs(x) > 0.75 Then
            y = F2(x): If old(1) <> 0 Then Me.Line (x - d, old(1))-(x, y), vbRed
            old(1) = y
        End If
        If Abs(x) <= 0.5 Then
            y = F3(x): If old(2) <> 0 Then Me.Line (x - d, old(2))-(x, y), vbBlue
            old(2) = y
        End If
        If Abs(x) <= 0.75 And Abs(x) > 0.5 Then
            y = F4(x): If old(3) <> 0 Then Me.Line (x - d, old(3))-(x, y), vbGreen
            old(3) = y
        End If
        If Abs(x) <= 3 And Abs(x) > 1 Then
            y = F5(x): If old(4) <> 0 Then Me.Line (x - d, old(4))-(x, y), vbYellow
            old(4) = y
        End If
    Next
    For a = 0.44291104407364 To 2.53334707467958 Step d
        x = dX(a): y = dY(a)
        If old(5) <> 0 Then Me.Line (old(5), old(6))-(x, y), vbMagenta: Me.Line (-old(5), old(6))-(-x, y), vbMagenta
        old(5) = x: old(6) = y
    Next
End Sub
 
Private Function F1(ByVal x As Double) As Double
    F1 = Abs(x / 2) - ((3 * Sqr(33) - 7) / 112) * x * x - 3 + Sqr(1 - (Abs(Abs(x) - 2) - 1) ^ 2)
End Function
Private Function F2(ByVal x As Double) As Double
    F2 = 9 * Sqr(Abs((Abs(x) - 1) * (Abs(x) - 0.75)) / ((1 - Abs(x)) * (Abs(x) - 0.75))) - 8 * Abs(x)
End Function
Private Function F3(ByVal x As Double) As Double
    F3 = 2.25 * Sqr(Abs((x - 0.5) * (x + 0.5)) / ((0.5 - x) * (0.5 + x)))
End Function
Private Function F4(ByVal x As Double) As Double
    F4 = 3 * Abs(x) + 0.75 * Sqr(Abs((Abs(x) - 0.75) * (Abs(x) - 0.5)) / ((0.75 - Abs(x)) * (Abs(x) - 0.5)))
End Function
Private Function F5(ByVal x As Double) As Double
    F5 = 6 * Sqr(10) / 7 + (1.5 - 0.5 * Abs(x)) * Sqr(Abs(Abs(x) - 1) / (Abs(x) - 1)) - 6 * Sqr(10) / 14 * Sqr(4 - (Abs(x) - 1) ^ 2)
End Function
Private Function dX(ByVal x As Double) As Double
    dX = 7 * Sin(x) * Sqr(Abs(Abs(7 * Sin(x)) - 3) / (Abs(7 * Sin(x)) - 3))
End Function
Private Function dY(ByVal x As Double) As Double
    dY = 3 * Cos(x) * Sqr(Abs(3 * Cos(x) + 3 * Sqr(33) / 7) / (3 * Cos(x) + 3 * Sqr(33) / 7))
End Function
Миниатюры
Построение графиков по формулам  
3
0 / 0 / 0
Регистрация: 29.11.2013
Сообщений: 19
29.04.2014, 21:28  [ТС]
Что за m?Можно ли вручную вводить размерность осей? Что за Format$,Sk, Call Scal,Call Graf,Call Coord?
Call Graf_1
Call Graf_2
Call Graf_3
Call Graf_4
Call Graf_5
Call Graf_6
просто не всё понимаю)
0
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
29.04.2014, 21:35
У Анатолия код лучше, как всегда

Добавлено через 1 минуту
Цитата Сообщение от Артик Посмотреть сообщение
Call Graf_1
Call Graf_2
Call Graf_3
Call Graf_4
Call Graf_5
Call Graf_6
Это вызовы процедур построения графиков.
2
0 / 0 / 0
Регистрация: 29.11.2013
Сообщений: 19
29.04.2014, 23:43  [ТС]
А остальные вопросы?
0
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
30.04.2014, 00:52
Цитата Сообщение от Артик Посмотреть сообщение
А остальные вопросы?
Цитата Сообщение от Артик Посмотреть сообщение
Что за m?Можно ли вручную вводить размерность осей? Что за Format$,Sk, Call Scal,Call Graf,Call Coord?
Метка. Можно. Функция форматирования, константа, вызовы процедур.
0
0 / 0 / 0
Регистрация: 29.11.2013
Сообщений: 19
03.05.2014, 15:49  [ТС]
Всем спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.05.2014, 15:49
Помогаю со студенческими работами здесь

Построение графиков на определенном интервале
Добрый вечер, форумчане:) Дело в том, что послезавтра завтра зачет, а я тупо не успел выучить материал. Не могли бы Вы мне помочь,...

Построение графиков в Visual Basic
Необходимо построить график функции y=(10ln(5)^5+5)/(30sin^2((3x+10)^3)+7)

Решение дифференциального уравнения и построение графиков
Здраствуйте, помогите пожалуста выявить в чем проблема. Программа запускается но выдает ошибку run-time error '9'; Subscript out of range....

Построение графиков
Всем доброго дня. Прошу о помощи. Задание таково: есть таблица в word файле, также свободно переносится в excel, таблица задана...

Построение графиков excel
Здравствуйте, помогите пожалуйста, VBA изучаю недавно и очень медленно,т.к. тяжело дается, но задание надо срочно сделать. В общем нужна...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru