您当前位置:主页 > 资讯 > 详情

迪卡尔坐标详解

2024-09-03 02:58 |之间网 |来源:未知

一、迪卡尔坐标详解

就是位于第一象限,横坐标是1,纵坐标也是1。

二、迪卡尔坐标系的定义以及怎样划分?

笛卡尔坐标系 (Cartesian coordinates) 就是直角坐标系和斜角坐标系的统称。

相交于原点的两条数轴,构成了平面仿射坐标系。如两条数轴上的度量单位相等,则称此仿射坐标系为笛卡尔坐标系。两条数轴互相垂直的笛卡尔坐标系,称为笛卡尔直角坐标系,否则称为笛卡尔斜角坐标系。

仿射坐标系和笛卡尔坐标系平面向空间的推广

相交于原点的三条不共面的数轴构成空间的仿射坐标系。三条数轴上度量单位相等的仿射坐标系被称为空间笛卡尔坐标系。三条数轴互相垂直的笛卡尔坐标系被称为空间笛卡尔直角坐标系,否则被称为空间笛卡尔斜角坐标系。

笛卡尔坐标,它表示了点在空间中的位置,但却和直角坐标有区别,两种坐标可以相互转换。举个例子:某个点的笛卡尔坐标是493 ,454, 967,那它的X轴坐标就是4+9+3=16,Y轴坐标是4+5+4=13,Z轴坐标是9+6+7=22,因此这个点的直角坐标是(16, 13, 22),坐标值不可能为负数(因为三个自然数相加无法成为负数)。

笛卡尔和笛卡尔坐标系的产生

据说有一天,法国哲学家、数学家笛卡尔生病卧床,病情很重,尽管如此他还反复思考一个问题:几何图形是直观的,而代数方程是比较抽象的,能不能把几何图形与代数方程结合起来,也就是说能不能用几何图形来表示方程呢?要想达到此目的,关键是如何把组成几何图形的点和满足方程的每一组“数”挂上钩,他苦苦思索,拼命琢磨,通过什么样的方法,才能把“点”和“数”联系起来。突然,他看见屋顶角上的一只蜘蛛,拉着丝垂了下来,一会功夫,蜘蛛又顺着丝爬上去,在上边左右拉丝。蜘蛛的“表演”使笛卡尔的思路豁然开朗。他想,可以把蜘蛛看做一个点,它在屋子里可以上、下、左、右运动,能不能把蜘蛛的每个位置用一组数确定下来呢?他又想,屋子里相邻的两面墙与地面交出了三条线,如果把地面上的墙角作为起点,把交出来的三条线作为三根数轴,那么空间中任意一点的位置就可以用这三根数轴上找到有顺序的三个数。反过来,任意给一组三个有顺序的数也可以在空间中找出一点P与之对应,同样道理,用一组数(x、y)可以表示平面上的一个点,平面上的一个点也可以有用一组两个有顺序的数来表示,这就是坐标系的雏形。

直角坐标系的创建,在代数和几何上架起了一座桥梁,它使几何概念用数来表示,几何图形也可以用代数形式来表示。由此笛卡尔在创立直角坐标系的基础上,创造了用代数的方法来研究几何图形的数学分支——解析几何, 他大胆设想:如果把几何图形看成是动点的运动轨迹,就可以把几何图形看成是由具有某种共同特征的点组成的。举一个例子来说,我们可以把图看作是动点到定点距离相等的点的轨迹,如果我们再把点看作是组成几何图形的基本元素,把数看作是组成方程的解,于是代数和几何就这样合为一家人了。

三、笛卡尔说过:拿不定主意的人,要么是欲望太大,要么

说的也对呀

四、vc中如何把窗口坐标系转为笛卡尔坐标系

他的好处是窗口中的每一点坐标不会随着窗口的大小而改变,即你改变窗口时窗口中的图形不会改变。函数1:模式选择int SetMapMode( __in HDC hdc, __in int fnMapMode );fnMapMode可传入MM_TEXT,MM_ISOTROPIC,MM_ANISOTROPIC等参数函数2:设置新的高度和宽度BOOL SetWindowExtEx( __in HDC hdc,//设备环境句柄 __in int nXExtent,//新的宽度(如果为MM_ISOTROPIC则nXExtent和nYExtent必须相等) __in int nYExtent,//新的高度 __out LPSIZE lpSize//用于返回原来的大小,不需要设为NULL );不管真实的窗口区域大小是多少,该函数告诉windows窗口的逻辑宽是nXExtent,逻辑高度是nYExtent。windows会将DC代表的区域的宽度nXExtent等分,每份的长度就是X方向上的单位长度,将高度nYExtent等分得到y轴上的单位长度函数3:设置x,y坐标轴的方向和坐标轴的范围,即定义域和值域BOOL SetViewportExtEx( __in HDC hdc,//设备环境句柄 __in int nXExtent,//新的宽度(以像素为单位,定义域) __in int nYExtent,//新的高度(以像素为单位,值域) __out LPSIZE lpSize//用于返回原来的大小,不需要设为NULL);要想坐标系包含整个区域,直接把区域的真实大小传递给此函数即可。参数nXExtent和nYExtent为正表示与默认坐标系方向相同,即向右向下为X,Y的正方向,为负表示与默认方向相反函数4:设置坐标系的原点坐标BOOL SetViewportOrgEx( __in HDC hdc, __in int X,//原点横坐标 __in int Y,//原点纵坐标 __out LPPOINT lpPoint );演示代码1:画内切与客户区的圆(坐标系不变)case WM_PAINT: RECT rt; int cx,cy; GetClientRect(hWnd,&rt); hdc = BeginPaint(hWnd, &ps); cx = rt.right; cy = rt.bottom; //设置客户区的逻辑大小为500*500,原点为(0,0) SetMapMode(hdc,MM_ISOTROPIC); SetWindowExtEx(hdc,500,500,NULL); SetViewportExtEx(hdc,cx,cy,NULL); //SetViewportOrgEx(hdc,cx/2,cy/2,NULL); SetViewportOrgEx(hdc,0,0,NULL); //MoveToEx(hdc,0,0,NULL); //LineTo(hdc,-200,-200); Ellipse(hdc,0,0,500,500); EndPaint(hWnd, &ps); break; 画出的圆会随着边框的改变而改变演示代码2:笛卡尔坐标系下画圆case WM_PAINT: RECT rt; int cx,cy; GetClientRect(hWnd,&rt); hdc = BeginPaint(hWnd, &ps); cx = rt.right; cy = rt.bottom; //设置客户区的逻辑大小为500*500,原点为中点 SetMapMode(hdc,MM_ISOTROPIC); SetWindowExtEx(hdc,500,500,NULL); SetViewportExtEx(hdc,cx,-cy,NULL); //设置坐标轴方向 SetViewportOrgEx(hdc,cx/2,cy/2,NULL);//设置原点 //SetViewportOrgEx(hdc,0,0,NULL); //MoveToEx(hdc,0,0,NULL); //LineTo(hdc,-200,-200); Ellipse(hdc,-250,250,250,-250); //画圆 EndPaint(hWnd, &ps); break; 注意;如果选择MM_ANISOTROPIC则会画出椭圆