B樣條的乙個問題的試探(續)

2021-08-22 09:02:15 字數 1332 閱讀 1543

用數學歸納法能夠證明b樣條插值演算法的正確性,但比較繁複,限於篇幅不做討論。

有關b樣條插值演算法正確性反而是在matlab實現中發現的,以下列出目前插值演算法實現**:

function [ new_vertices, new_knots ] = mybspline_insert( vertices, knots, new_knot, k )

%mybspline_insert summary of this function goes here

% detailed explanation goes here

old_vertices = [0,0,0; vertices']';

old_knots = knots;

r = 0;

i = -1;

new_knots = ;

for j = 1 : length(old_knots)

if old_knots(j) < new_knot

new_knots(j) = old_knots(j);

elseif old_knots(j) == new_knot

r = r + 1;

new_knots(j) = new_knot;

else

if i < 0

i = j - 1;

endnew_knots(j+1) = old_knots(j);

endend

new_knots(i+1) = new_knot;

j1 = i - k + 2;

j2 = i - r + 1;

if j1 > j2

tmp = j1;

j1 = j2;

j2 = tmp;

elseif j1 < 1

j1 = 1;

endn = length(old_vertices);

new_vertices = zeros(3, n);

j = 1 : (j1 - 1);

new_vertices(:, j) = old_vertices(:, j + 1);

j = j1 : (j2 - 1);

beta = (new_knot - old_knots(j)) ./ (old_knots(j + k - 1) - old_knots(j));

for i = 1 : 3

new_vertices(i, j) = (1 - beta) .* old_vertices(i, j) + beta .* old_vertices(i, j + 1);

endj = j2 : n

new_vertices(:, j) = old_vertices(:, j);

有關三邊Bezier曲面的乙個問題的試探

教程中有關三邊bezier曲面採用四邊bezier曲面拼接的問題講得比較含糊,也較難匯出其結論,但是可以考慮通過引數變換用四邊bezier曲面表示三邊bezier曲面上的點。根據bezier插值公升階定理,其中。定義運算元 為,注意,對於 有。於是,如有 則。對於四邊bezier曲面 其中。三角be...

乙個2023年的難題(續)

關於 乙個2000年的難題 我當時的做法不像erning那樣隱蔽,不過思路是一樣的。就是 http msweb img logo.jpg 是內部網路的一幅,page4everyone.htm是給其他人看到的主頁。而這個頁面的正文是很正常的一些文字。原理就是,只有微軟內部的人才能訪問到那個,而不在微軟...

乙個2023年的難題(續)

關於 乙個2000年的難題 我當時的做法不像erning那樣隱蔽,不過思路是一樣的。就是 http msweb img logo.jpg 是內部網路的一幅,page4everyone.htm是給其他人看到的主頁。而這個頁面的正文是很正常的一些文字。原理就是,只有微軟內部的人才能訪問到那個,而不在微軟...