📄 vertex.java
字号:
public class Vertex
{
public double coord[];
public int dim;
public double val;
public Vertex( int d )
{
dim = d;
coord = new double[dim];
}
public Vertex( double x[] )
{
dim = x.length;
coord = x;
}
public Vertex copy()
{
double c[] = new double[dim];
int i;
for( i = 0; i < dim; i++ )
c[i] = coord[i];
Vertex nv = new Vertex( c );
nv.val = val;
return nv;
}
public Vertex combine( double ownt, Vertex v )
{
if( v.dim != dim )
return null;
int i;
double othert = 1.0 - ownt;
Vertex nv = new Vertex( dim );
for( i = 0; i < dim; i++ )
nv.coord[i] = coord[i] * ownt + v.coord[i] * othert;
return nv;
}
public Vertex sub( Vertex v )
{
if( v.dim != dim )
return null;
int i;
Vertex nv = new Vertex( dim );
for( i = 0; i < dim; i++ )
nv.coord[i] = coord[i] - v.coord[i];
return nv;
}
public Vertex add( Vertex v )
{
if( v.dim != dim )
return null;
int i;
Vertex nv = new Vertex( dim );
for( i = 0; i < dim; i++ )
nv.coord[i] = coord[i] + v.coord[i];
return nv;
}
public double distanceTo( Vertex v )
{
int i;
double s, d;
s = 0.0;
for( i = 0; i < dim; i++ ) {
d = coord[i] - v.coord[i];
s += d * d;
}
return Math.sqrt( s );
}
public String toString()
{
int i;
String txt = new String( "(" );
for( i = 0; i < dim; i++ ) {
if( i > 0 )
txt += ",";
txt += " " + coord[i];
}
txt += " )";
return txt;
}
public static double getDiameter( Vertex V[] )
{
int i, j;
double d, dmax;
dmax = 0.0;
int m = V.length;
if( m <= 1 )
return 0.0;
for( i = 0; i < m; i++ )
for( j = i + 1; j < m; j ++ ) {
d = V[i].distanceTo( V[j] );
if( dmax < d )
dmax = d;
}
return dmax;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -