⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 shrink1.java

📁 Clustering demo.very good
💻 JAVA
字号:
public class shrink1{

	public static double[] shrink1(double[] vmedian, double[] vrep, double vper/*centage*/){

		double x1=vmedian[0], y1=vmedian[1];
		double x2=vrep[0], y2=vrep[1], r=Math.sqrt( (x2-x1)*(x2-x1) + (y2-y1)*(y2-y1) ), per=vper;

		double a1=y1-y2, b1=x2-x1, c1=-( ((y1-y2)*x1) + ((x2-x1)*y1)  );

		double a=( (a1*a1) + (b1*b1) )/(b1*b1);
		double b=(-2*x1)+(2*y1*(a1/b1))+( (2*a1*c1)/(b1*b1) );
		double c=(x1*x1) + ( (c1*c1)/(b1*b1) ) + (y1*y1) + (2*c1*y1/b1) - (r*r*per*per);

		double resx1,resx2;
		resx1=(   (-b)+Math.sqrt( (b*b)-(4*a*c) )   ) / (2*a);
		resx2=(   (-b)-Math.sqrt( (b*b)-(4*a*c) )   ) / (2*a);

		double resy1, resy2;
		resy1=(-c1/b1)- (a1*resx1/b1);
		resy2=(-c1/b1)- (a1*resx2/b1);

		System.out.println("given median is:(" + x1 +"," + y1+")" );
		System.out.println("given 2nd point is:(" + x2 +"," + y2+")" );
		System.out.println("shrinked points r:(" + resx1 +"," + resy1+")" );
		System.out.println("shrinked points r:(" + resx2 +"," + resy2+")" );

		double[] res=new double[2];
		if( (x1<=resx1 && x2>=resx1) || (x1>=resx1 && x2<=resx1) ) { res[0]=resx1; res[1]=resy1; }
		else if( (x1<=resx2 && x2>=resx2) || (x1>=resx2 && x2<=resx2) ){ res[0]=resx2; res[1]=resy2; }


		System.out.println("final shrinked point is:(" + res[0] +"," + res[1] +")" );

		return res;
	}

/*	public static void main(String[] args){

		double a1[]={20,20}, a2[]={10,10};
		shrink1.shrink1( a1, a2, 0.75);

	}*/
}



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -