ВУЗ:
Составители:
Рубрика:
46
Sub VSpline(t As Double, ByVal n As Long, X() As Double, Y() _
As Double, tPxy() As Double, Kod As Long, Vx As Double, Vy As Double)
' Процедура, использующая функцию HS для расчѐта
' параметрического кубического сплайна двух переменных
' x(1 To n), y(1 To n), Kod - описаны в HS, кроме того,
'если Kod <=1, то вычисляются узлы параметрической сетки.
' Массив узлов сетки и производных tPxy(1 to n, 0 To 2):
' tPxy(1 To n, 0) - длина ломанной до i-ой точки, т.е. узлы
i
t
' tPxy(1 To n, 1) – производные dX/dt по t в узлах
i
t
' tPxy(1 To n, 2) – производные dY/dt по t в узлах
i
t
' Vx,Vy – вычисленные координаты сплайн-кривой для значения t
Dim KodErr As Long, KD As Long
If Kod <= 1 Then
tPxy(1, 0) = 0#
For i = 2 To N ' Расчѐт узлов параметрической сетки
tPxy(i, 0) = Sqr((X(i) - X(i - 1)) ^ 2+(Y(i) - Y(i - 1)) ^ 2)+tPxy(i - 1, 0)
Next i
End If
KD = Kod
Vx = HS(t, N, tPxy(1, 0), X(1), tPxy(1, 1), KD, KodErr)
If KodErr <> 0 Then Stop
Vy = HS(t, N, tPxy(1, 0), Y(1), tPxy(1, 2), Kod, KodErr)
If KodErr <> 0 Then Stop
End Sub
Если задать Kod=1 (или
Kod<1) и вызвать проце-
дуру VSpline, то по X,Y-
координатам исходных
точек для рис. 3.3 и 3.5
происходит вычисление
параметров t узлов
сплайн-кривой (см. рис. 3.5). Если для точек с рис. 3.3 задана длина
Рис. 3.5.
Sub VSpline(t As Double, ByVal n As Long, X() As Double, Y() _ As Double, tPxy() As Double, Kod As Long, Vx As Double, Vy As Double) ' Процедура, использующая функцию HS для расчѐта ' параметрического кубического сплайна двух переменных ' x(1 To n), y(1 To n), Kod - описаны в HS, кроме того, 'если Kod <=1, то вычисляются узлы параметрической сетки. ' Массив узлов сетки и производных tPxy(1 to n, 0 To 2): ' tPxy(1 To n, 0) - длина ломанной до i-ой точки, т.е. узлы ti ' tPxy(1 To n, 1) – производные dX/dt по t в узлах ti ' tPxy(1 To n, 2) – производные dY/dt по t в узлах ti ' Vx,Vy – вычисленные координаты сплайн-кривой для значения t Dim KodErr As Long, KD As Long If Kod <= 1 Then tPxy(1, 0) = 0# For i = 2 To N ' Расчѐт узлов параметрической сетки tPxy(i, 0) = Sqr((X(i) - X(i - 1)) ^ 2+(Y(i) - Y(i - 1)) ^ 2)+tPxy(i - 1, 0) Next i End If KD = Kod Vx = HS(t, N, tPxy(1, 0), X(1), tPxy(1, 1), KD, KodErr) If KodErr <> 0 Then Stop Vy = HS(t, N, tPxy(1, 0), Y(1), tPxy(1, 2), Kod, KodErr) If KodErr <> 0 Then Stop End Sub Если задать Kod=1 (или Kod<1) и вызвать проце- дуру VSpline, то по X,Y- координатам исходных точек для рис. 3.3 и 3.5 происходит вычисление Рис. 3.5. параметров t узлов сплайн-кривой (см. рис. 3.5). Если для точек с рис. 3.3 задана длина 46
Страницы
- « первая
- ‹ предыдущая
- …
- 44
- 45
- 46
- 47
- 48
- …
- следующая ›
- последняя »