平面坐标系

平面坐标系1 数学中的平面坐标系数学中的平面坐标系只有一种 2 计算机中的平面坐标系计算机中 常用的平面坐标系有两种 第一种是和数学中的比较接近 第二种是契合阅读顺序 即 x 3 y 5 对应第三行第 5 列 六边形坐标系

大家好,欢迎来到IT知识分享网。

目录

一,直角坐标系

1,数学中的平面坐标系

2,计算机中的平面坐标系

二,六边形坐标系

1,直角坐标系

2,120度坐标系

3,60度坐标系

4,极坐标系


一,直角坐标系

1,数学中的平面坐标系

数学中的平面坐标系只有一种:

平面坐标系

2,计算机中的平面坐标系

计算机中,常用的平面坐标系有两种:

平面坐标系

第一种是和数学中的比较接近,

第二种是契合阅读顺序,即x=3,y=5对应第三行第5列

opencv中,at函数是第二种坐标系,矩形是第一种坐标系(常见的都是第一种坐标系)。

二,六边形坐标系

直角坐标系中,用平行来理解坐标也可以,用垂直来理解坐标也可以。

但是本质上,平行才是几何的基本概念,垂直是推导出来的概念,所以严格来讲我们就应该用平行来理解直角坐标。

对于六边形坐标系,自然没有垂直的概念,平行的概念仍然可用。

1,直角坐标系

平面坐标系

六边形直角坐标系是尽量贴近普通直角坐标系设计的,不过还是很不一样,这里的直线是扭曲的。

从(x,y)往上、右上、右下分别走一步,向量分别是(0,1)(1,x%2)(1,x%2-1),

其实往右下走一步就是往右上走一步再往下走一步。

往另外三个方向走一步,和这三个方向分别相反即可。

求2点之间的最小路径距离:

struct Node { int x,y; }; int GetLen(Node a, Node b) { if (a.x > b.x)return GetLen(b, a); int dx = b.x - a.x; int dy = abs(b.y - a.y); if (dx % 2 == 0) { if (dy <= dx / 2)return dx; return dx + dy - dx / 2; } int ym = dx / 2 + ((a.x + (b.y < a.y)) % 2 + 2) % 2; if (dy <= ym)return dx; return dx + dy - ym; }

计算从一个点往一个方向运动一定距离之后,到达的位置:

Node Move(Node a, int dire, int len)//dire是0-5,len是0-正无穷 { if (dire % 3 == 0)return Node{ a.x, a.y + (dire == 0 ? 1 : -1) * len }; if (dire == 1 || dire == 5)return Node{ a.x + (dire == 1 ? 1 : -1)*len, a.y + len / 2 + (len % 2 ? (a.x % 2 + 2) % 2 : 0) }; Node b = Move(a, 3, len); if (dire == 2)return Move(b, 1, len); return Move(b, 5, len); }

应用:六宫数局

2,120度坐标系

平面坐标系

3个方向里面任选2个作为坐标系方向即可。

平面坐标系

或者3个方向里面任选2个作为坐标系方向即可。

我取红线作为坐标系:

平面坐标系

可以看出,剩下的黑线就是直线y=x

3,60度坐标系

平面坐标系

任选2个夹角为60度的方向作为坐标系方向也是可以的。

其实这就相当于把120度坐标系的一个轴,方向反过来。

4,极坐标系

可以把一个正六边形按顺序编号,用编号a代替角度。

坐标用(r,a)表示,r是距离,a是编号

平面坐标系  平面坐标系

六条直线(射线)的方程分别是a=kr,k=0,1,2,3,4,5

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/125179.html

(0)
上一篇 2025-09-29 19:00
下一篇 2025-09-29 19:15

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信