【算法】欧几里德、毕达哥拉斯、帕斯卡和蒙特去公园已知三点组成平行四边形,求第四点

问题描述:

欧几里德、毕达哥拉斯、帕斯卡和蒙特打算去公园玩,公园是N行,M列。帕斯卡、欧几里德和蒙特站在三个不同位置。毕达哥拉斯最后一个到达,并决定站在一个位置并使四个点组成平行四边形。已知欧几里德和蒙特位置是平行四边形的对角线。编程,求毕达哥拉斯的位置。

输入七个参数:

行数N clos

列数M rows

positionPark 公园矩阵坐标

endInx 欧几里德x坐标

endIny 欧几里德y坐标

montx 蒙特X坐标

moteY 蒙特Y坐标

输出:毕达哥拉斯组成平行四边形的x和y坐标。


分析:首先需要确定帕斯卡的坐标位置。已知三点,并且确定其中两点为对角线。求出对角线的中点E,根据点E距离C点横纵坐标的距离,与点D距离点E横纵坐标的距离相等,求出点D的坐标。




代码如下:

public static void main(String[] args) {
			  /* char [][]positionInpark={
					   {'-','-','-','-','-','-','-','-'},
					   {'-','+','-','-','-','-','-','-'},
					   
					  
					   
					   {'-','-','-','-','-','-','-','-'},
					   {'-','+','-','-','-','-','+','-'},
					 };*/
			   char [][]positionInpark={
					   {'-','-','-','-'},
					   {'-','+','-','-'},
					   
					  
					   {'+','-','-','-'},
					   
					   {'-','-','-','-'},
					   {'-','-','+','-'},
					 };
			   int a[]= toCompleteParrelogrom(5,4,positionInpark,2,2,5,3);
			   System.out.println(a);
			   }
			   
		  
	    
	    public static int [] toCompleteParrelogrom(int rows,int clos,char [][]positionInpark,int endInx,int endIny,int moteX,int moteY){
	    	int pax=0,pay=0;
	    	for(int i=0;i<rows;i++){
	    		for(int j=0;j<clos;j++){
	    			if(positionInpark[i][j]=='+'){
	    				
	    				if(endIny==j+1&&endInx==i+1||moteY==j+1&&moteX==i+1){
	    					
	    				}else
	    				{
	    					pax=i+1;//确定位置
	    					pay=j+1;
	    				}
	    			}
	    		}
	    		
	    	}
	    	double x=((double)endInx+moteX)/2;
	    	double y=((double)endIny+moteY)/2;
	    	
	    	double xcha=x-pax;
	    	double ycha=y-pay;
	    	
	    	double resultx=(xcha+x);
	    	double resulty=(ycha+y);
	    	int a[]=new int[]{(int)resultx,(int)resulty};
	    	return a;
	    	
	    }


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值