?? b-splin_rar - deboor_java.htm
字號:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0085)http://www.programsalon.com/view/downloads76/sourcecode/java/282080/DeBoor.java__.htm -->
<HTML><HEAD><TITLE>B-splin.rar - DeBoor.java</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<META content="MSHTML 6.00.2900.3199" name=GENERATOR></HEAD>
<BODY>
<SCRIPT language=JavaScript>
function openwin(url)
{
window.open(url, 'ProgramSourceCode');
}
</SCRIPT>
<TEXTAREA rows=17 cols=105>文件頭:
public class DeBoor
{
public static void main(String[] args)
{
DeBoor D=new DeBoor();
double[][] d={{-24,-12,1,10,12},{0,6,8,2,0}};
double[] t={0,0.75,1};
int [] r={4,1,4};
int q=2;
int k=3;
double u=0.5;
double[] w=D.BsplineDrive(d,t,r,q,u,k);
System.out.println(w[0]+" "+w[1]);
}
public double[] BsplineNote(double[] t,int[] r,double u,double[][] d)
{
double x[]=new double[2];
double[][] c=d;
int i=0,k=3;
for(int j=0;j<8;j++)
{
if(u<=knotValue(j+1,t,r)&&u>knotValue(j,t,r))
{
i=j;
break;
}
}
for(int q=1;q<=k;q++)
{
for(int j=i-k;j<=i-q;j++)
{
double alfa=knotValue(j+k+1,t,r)-knotValue(j+1,t,r);
if(alfa==0)alfa=0;
else
alfa=(u-knotValue(j+1,t,r))/alfa;
c[0][j]=(1-alfa)*c[0][j]+alfa*c[0][j+1];
c[1][j]=(1-alfa)*c[1][j]+alfa*c[1][j+1];
}
}
for(int m=0;m<2;m++)
{
x[m]=c[m][i-k];
}
return x;
}
public double[] Bspline</TEXTAREA><BR>
<TABLE width=756 border=0>
<TBODY>
<TR>
<TD width=1 bgColor=#b0b0b0></TD>
<TD>
<SCRIPT type=text/javascript><!--
google_ad_client = "pub-8055710228382273";
google_ad_width = 728;
google_ad_height = 90;
google_ad_format = "728x90_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "FFFFFF";
google_color_bg = "FFFFFF";
google_color_link = "000000";
google_color_text = "333333";
google_color_url = "666666";
//--></SCRIPT>
<SCRIPT src="B-splin_rar - DeBoor_java.files/show_ads.js"
type=text/javascript>
</SCRIPT>
</TD>
<TD width=15 bgColor=#e4e0d8></TD></TR></TBODY></TABLE><TEXTAREA rows=12 cols=105>文件尾:
)&&u>knotValue(j,t,r))
{
i=j;
break;
}
}
//System.out.println(i);
for(int l=1;l<=q;l++)
{
for(int j=i-k;j<=i-l;j++)
{
d[0][j]=(k-l+1)*(d[0][j+1]-d[0][j])/(knotValue(j+k+1,t,r)-knotValue(j+l,t,r));
d[1][j]=(k-l+1)*(d[1][j+1]-d[1][j])/(knotValue(j+k+1,t,r)-knotValue(j+l,t,r));
}
}
for(int j=0;j<=i-q;j++)
//System.out.print(d[0][j]+" "+d[1][j]+" ");
for(int l=1;l<=i-q;l++)
{
for(int j1=0;j1<i-q;j1++)
{
double alfa=knotValue(j1+k+1,t,r)-knotValue(j1+q+1,t,r);
if(alfa==0)alfa=0;
else
alfa=(u-knotValue(j1+q+1,t,r))/alfa;
d[0][j1]=(1-alfa)*d[0][j1]+alfa*d[0][j1+1];
d[1][j1]=(1-alfa)*d[1][j1]+alfa*d[1][j1+1];
}
}
x[0]=d[0][0];x[1]=d[1][0];
return x;
}
public double knotValue(int k,double t[],int r[])
{
int j=1;
double temp=0;
for(int i=0;i<r.length;i++)
{
temp=temp+r[i];
if(temp>k)
{
j=i;
break;
}
}
return t[j];
}
}
</TEXTAREA><BR><A href="http://www.pudn.com/"><SMALL><FONT
color=#a0a0a0>程序員聯(lián)合開發(fā)網(wǎng)</FONT></SMALL></A> <A
href="http://www.programsalon.com/downloads76/sourcecode/java/detail282080.html"><SMALL><FONT
color=#a0a0a0>返回B-splin.rar</FONT></SMALL></A> <A
href="javascript:openwin('/view_src.asp?id=282080&f=DeBoor.java');"><SMALL><FONT
color=#a00000>在線閱讀整個文件</FONT></SMALL></A> </BODY></HTML>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -