Графики функций

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

Графики функций

Сообщение serix » 14.03.2003 (Пт) 11:53

На сайте vbstreets в faq'ах где-то была статейка про построение графиков функций, примерно это было так:
Private Function FGraph(x as double)
Fgraph = x^3+x^2+1
End Function

Private sub Form_Load()
for x=-10 to 10 do
Picture1.pset x,FGraph(x)
next x
End Sub
Че то я здесь не записал, т.к. сайт vbstreets у меня не грузится.
А проблема в том, что функцию можно задать только в процессе разработки, а вот как-бы это сделать при выполнении проги??
Псибо...
ZU

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 14.03.2003 (Пт) 12:06

Я советую делать так:

Используй Microsoft Script Control. В него можно в процессе выполнения запихать любой код и исполнять его там же.

Примерно так:

Код: Выделить всё
Private Function FGraph(x as double) as double
Dim obj As ScriptControl
Dim m As Module
Set obj = New ScriptControl
obj.Language = "VBScript"
Set m = obj.Modules.Add("NewModule")
m.AddCode ("function MyFunc (v as double ) as double " & vbcrlf & " myfunc = v*2" & vbcrlf & " end function") 'тут ты динамически можешь подставлять любую функцию, какую надо.
FGraph = m.Run("MyFunc", x)
Set m = Nothing
Set obj = Nothing
end function

serix
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 177
Зарегистрирован: 09.11.2002 (Сб) 17:54
Откуда: Russia

Сообщение serix » 14.03.2003 (Пт) 12:14

Спасибо, попробую... :D
ZU

serix
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 177
Зарегистрирован: 09.11.2002 (Сб) 17:54
Откуда: Russia

Сообщение serix » 14.03.2003 (Пт) 14:40

Вот правильный листинг проги, если кому надо:
(Form1,mnuDraw) – необходимые части содержимого формы

Function Example(ByVal x As Single)
y = x ^ 3 - 12 * x ^ 2 + 3 ^ x
Debug.Print y
Example = y
End Function

Private Sub Form_Resize()
Refresh
End Sub

Private Sub mnuDraw_Click()
Form1.BackColor = &H80000009
DrawWidth = 2
Scale (-10, 200)-(10, -200)
Form1.ForeColor = &H0&
Line (-10, 0)-(10, 0)
Line (0, -200)-(0, 200)
DrawWidth = 1
Form1.ForeColor = &HFF&
For x = -10 To 10 Step 0.01
Line -(x, Example(x))
Next
End Sub
ZU

Ronin
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 635
Зарегистрирован: 13.02.2002 (Ср) 14:16
Откуда: Россия, Москва

Есть исходник...

Сообщение Ronin » 14.03.2003 (Пт) 18:02

Если надо, могу дать исходник, я раньше такую писал... Качайте на здоровье!
Вложения
Graf.rar
(59.15 Кб) Скачиваний: 134
С уважением,
Игорь Шувалов aka Ronin


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

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

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

    TopList