|
@@ -1,262 +0,0 @@
|
|
|
-#include "StdAfx.h"
|
|
|
-#include "Card.h"
|
|
|
-
|
|
|
-
|
|
|
-CCard::CCard(void)
|
|
|
-{
|
|
|
-}
|
|
|
-
|
|
|
-
|
|
|
-CCard::~CCard(void)
|
|
|
-{
|
|
|
-}
|
|
|
-
|
|
|
-void CCard::getCordinate()
|
|
|
-{
|
|
|
- //#include "stdio.h"
|
|
|
-#include "stdlib.h"
|
|
|
-#include <math.h>
|
|
|
- //坐标
|
|
|
- double ax,ay,bx,by,cx,cy,zx,zy;
|
|
|
- //距离
|
|
|
- double la,lb,lc;
|
|
|
- double cx1,cy1,cx2,cy2,cx3,cy3,cx4,cy4;
|
|
|
- int main(void)
|
|
|
- {
|
|
|
- int i = 0,j = 0,n = 0;
|
|
|
- int okflag = 0;
|
|
|
- int err = 0;
|
|
|
- int aberr = 0;
|
|
|
- int acerr = 0;
|
|
|
- int abcerr = 0;
|
|
|
- int len;
|
|
|
- int abrequery = 0;
|
|
|
- int acrequery = 0;
|
|
|
- int requery1 = 0;
|
|
|
- int loopnum = 1;
|
|
|
- int option = 0;
|
|
|
- double cax,cay,cbx,cby,ccx,ccy;
|
|
|
- double cax_abeyance1[6000],cay_abeyance1[6000];
|
|
|
- double cbx_abeyance1[6000],cby_abeyance1[6000];
|
|
|
- double ccx_abeyance1[6000],ccy_abeyance1[6000];
|
|
|
- double cabx_abeyance1[10],caby_abeyance1[10],cabx_abeyance2[10],caby_abeyance2[10];
|
|
|
- double cacx_abeyance1[10],cacy_abeyance1[10],cacx_abeyance2[10],cacy_abeyance2[10];
|
|
|
- //遍历圆周上所有点
|
|
|
- printf("use 'Enter' to divide x y\n");
|
|
|
- printf("input A coordinate:\n");
|
|
|
- scanf("%lf%lf",&ax,&ay);
|
|
|
- if((ax > 1000)||(bx > 1000))
|
|
|
- {
|
|
|
- printf("figure is too big! input A coordinate again:\n");
|
|
|
- scanf("%lf%lf",&ax,&ay);
|
|
|
- }
|
|
|
- printf("input B coordinate:\n");
|
|
|
- scanf("%lf%lf",&bx,&by);
|
|
|
- if((bx > 1000)||(bx > 1000))
|
|
|
- {
|
|
|
- printf("figure is too big! input B coordinate again:\n");
|
|
|
- scanf("%lf,%lf",&bx,&by);
|
|
|
- }
|
|
|
- printf("input C coordinate:\n");
|
|
|
- scanf("%lf%lf",&cx,&cy);
|
|
|
- if((cx > 1000)||(cx > 1000))
|
|
|
- {
|
|
|
- printf("figure is too big! input C coordinate again:\n");
|
|
|
- scanf("%lf%lf",&cx,&cy);
|
|
|
- }
|
|
|
- printf("input distance from A to Z:\n");
|
|
|
- scanf("%lf",&la);
|
|
|
- if(la > 1000)
|
|
|
- {
|
|
|
- printf("figure is too big! inputdistance from A to Z again:\n");
|
|
|
- scanf("%lf",&la);
|
|
|
- }
|
|
|
- printf("input distance from B to Z:\n");
|
|
|
- scanf("%lf",&lb);
|
|
|
- if(lb > 1000)
|
|
|
- {
|
|
|
- printf("figure is too big! inputdistance from B to Z again:\n");
|
|
|
- scanf("%lf",&lb);
|
|
|
- }
|
|
|
- printf("input distance from C to Z:\n");
|
|
|
- scanf("%lf",&lc);
|
|
|
- if(lc > 1000)
|
|
|
- {
|
|
|
- printf("figure is too big! inputdistance from C to Z again:\n");
|
|
|
- scanf("%lf",&lc);
|
|
|
- }
|
|
|
- printf("\n");
|
|
|
- printf("A(%lf,%lf)\n",ax,ay);
|
|
|
- printf("B(%lf,%lf)\n",bx,by);
|
|
|
- printf("C(%lf,%lf)\n",cx,cy);
|
|
|
- printf("AZ = %lf\n",la);
|
|
|
- printf("BZ = %lf\n",lb);
|
|
|
- printf("CZ = %lf\n",lc);
|
|
|
- //INPUT:
|
|
|
- for(zx = ax -la;zx <= ax + la;zx++)
|
|
|
- {
|
|
|
- do
|
|
|
- {
|
|
|
- for(zy = ay -la;zy <= ay + la;zy++)
|
|
|
- {
|
|
|
- cax = zx - ax;
|
|
|
- cax = fabs(cax);
|
|
|
- cax = pow(cax,2);
|
|
|
- cay = zy - ay;
|
|
|
- cay = fabs(cay);
|
|
|
- cay = pow(cay,2);
|
|
|
- if(((cax + cay) > (la*la - err))&&((cax + cay) < (la*la + err)))
|
|
|
- {
|
|
|
- okflag = 1;
|
|
|
- cax_abeyance1[i] = zx;
|
|
|
- cay_abeyance1[i] = zy;
|
|
|
- n++;
|
|
|
- }
|
|
|
- }
|
|
|
- if(!okflag)err++;
|
|
|
- } while (okflag == 0);
|
|
|
- i++;
|
|
|
- err = 0;
|
|
|
- okflag = 0;
|
|
|
- }
|
|
|
- printf("query...\n");
|
|
|
- i = 0;
|
|
|
- for(zx = bx -lb;zx <= bx + lb;zx++)
|
|
|
- {
|
|
|
- do
|
|
|
- {
|
|
|
- for(zy = by -lb;zy <= by + lb;zy++)
|
|
|
- {
|
|
|
- cbx = zx - bx;
|
|
|
- cbx = fabs(cbx);
|
|
|
- cbx = pow(cbx,2);
|
|
|
- cby = zy - by;
|
|
|
- cby = fabs(cby);
|
|
|
- cby = pow(cby,2);
|
|
|
- if(((cbx + cby) > (lb*lb - err))&&((cbx + cby) < (lb*lb + err)))
|
|
|
- {
|
|
|
- okflag = 1;
|
|
|
- cbx_abeyance1[i] = zx;
|
|
|
- cby_abeyance1[i] = zy;
|
|
|
- }
|
|
|
- }
|
|
|
- if(!okflag)err++;
|
|
|
- } while (okflag == 0);
|
|
|
- i++;
|
|
|
- err = 0;
|
|
|
- okflag = 0;
|
|
|
- }
|
|
|
- printf("query...\n");
|
|
|
- getchar();
|
|
|
- i = 0;
|
|
|
- for(zx = cx -lc;zx <= cx + lc;zx++)
|
|
|
- {
|
|
|
- do
|
|
|
- {
|
|
|
- for(zy = cy -lc;zy <= cy + lc;zy++)
|
|
|
- {
|
|
|
- ccx = zx - cx;
|
|
|
- ccx = fabs(ccx);
|
|
|
- ccx = pow(ccx,2);
|
|
|
- ccy = zy - cy;
|
|
|
- ccy = fabs(ccy);
|
|
|
- ccy = pow(ccy,2);
|
|
|
- if(((ccx + ccy) > (lc*lc - err))&&((ccx + ccy) < (lc*lc + err)))
|
|
|
- {
|
|
|
- okflag = 1;
|
|
|
-
|
|
|
- ccx_abeyance1[i] = zx;
|
|
|
- ccy_abeyance1[i] = zy;
|
|
|
- n++;
|
|
|
- }
|
|
|
- }
|
|
|
- if(!okflag)err++;
|
|
|
- } while (okflag == 0);
|
|
|
- i++;
|
|
|
- err = 0;
|
|
|
- okflag = 0;
|
|
|
- }
|
|
|
- printf("query a b c over!\n");
|
|
|
- printf("press Enter to continue!\n");
|
|
|
- //必须加不然运行出错,但不会停止
|
|
|
- getchar();
|
|
|
- do
|
|
|
- {
|
|
|
- //找ab 交点,因为距离的偏差,所以坐标会有偏差
|
|
|
- aberr =0;
|
|
|
- do
|
|
|
- {
|
|
|
- for(i = 0;i <= 2*la;i++)
|
|
|
- {
|
|
|
- for(j = 0;j <= 2*lb;j++)
|
|
|
- {
|
|
|
- if(cax_abeyance1[i] == cbx_abeyance1[j])
|
|
|
- {
|
|
|
-
|
|
|
- if((cay_abeyance1[i] > (cby_abeyance1[j] - aberr - abcerr))&&(cay_abeyance1[i] < (cby_abeyance1[j] + aberr + abcerr)))
|
|
|
- {
|
|
|
- cabx_abeyance1[abrequery] = cax_abeyance1[i];
|
|
|
- caby_abeyance1[abrequery] = cay_abeyance1[i];
|
|
|
- printf("cabx_abeyance1[%d]=%f",abrequery,cabx_abeyance1[abrequery]);
|
|
|
- printf("caby_abeyance1[%d]=%f\n\n",abrequery,caby_abeyance1[abrequery]);
|
|
|
- abrequery++;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- if(abrequery < loopnum)aberr++;
|
|
|
- }while(abrequery < loopnum);
|
|
|
- acerr =0;
|
|
|
- //找ac 交点
|
|
|
- do
|
|
|
- {
|
|
|
- for(i = 0;i <= 2*la;i++)
|
|
|
- {
|
|
|
- for(j = 0;j <= 2*lc;j++)
|
|
|
- {
|
|
|
- if(cax_abeyance1[i] == ccx_abeyance1[j])
|
|
|
- {
|
|
|
- if((cay_abeyance1[i] > (ccy_abeyance1[j] - acerr - abcerr))&&(cay_abeyance1[i] < (ccy_abeyance1[j] + acerr + abcerr)))
|
|
|
- {
|
|
|
- cacx_abeyance1[acrequery] = cax_abeyance1[i];
|
|
|
- cacy_abeyance1[acrequery] = cay_abeyance1[i];
|
|
|
- acrequery++;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- if(acrequery < loopnum)acerr++;
|
|
|
- }while(acrequery < loopnum);
|
|
|
- //找交点的交点
|
|
|
- for(i = 0;i < abrequery;i++)
|
|
|
- {
|
|
|
- for(j = 0;j < acrequery;j++)
|
|
|
- {
|
|
|
- if(cabx_abeyance1[i] == cacx_abeyance1[j])
|
|
|
- {
|
|
|
- requery1 = 1;
|
|
|
- printf("final result is (%f,%f)\n",cabx_abeyance1[i],caby_abeyance1[i]);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- if(requery1 == 0)
|
|
|
- {
|
|
|
- loopnum++;
|
|
|
- abcerr++;
|
|
|
- }
|
|
|
- if(loopnum == 10)
|
|
|
- {
|
|
|
- printf("chech input figure is right\n");
|
|
|
- }
|
|
|
- }while(requery1 ==0);
|
|
|
- printf("finish!\n");
|
|
|
- getchar();
|
|
|
- return 0;
|
|
|
- }
|
|
|
-
|
|
|
-}
|
|
|
-
|
|
|
-int CCard::addReader( READERINFO* pReader )
|
|
|
-{
|
|
|
-
|
|
|
-}
|