求个JS算法

求知识,具体是这样的,有个倒三角形,这样的:▼,右上角,左上角,下面,这3个点,分别为:B,C,A如b=(0,0)c=(10,0)a=(5,5)坐标是假设,不必较真,谢谢... 求知识,具体是这样的,有个倒三角形,这样的:
▼,右上角,左上角,下面,这3个点,分别为:B,C,A
如b=(0,0)c=(10,0)a=(5,5)坐标是假设,不必较真,谢谢。
B C

A
这样的3个点,3角关系,他们可以换位,从左到右旋转90度换位,或者从右到左旋转90度换位,变下图这种:
下面行的坐标就变:c=(0,0),A=(10,0) A=(0,0),b=(10,0)
C A (↗) A B (↖)
▼ ▼
B C
上面行的坐标为:B=(5,5) c=(5,5)
这样的3组坐标点,如何在程序中使用简短的代码,用算法来解决他向左,向右旋转,他们之间的坐标换位呢?

先谢谢各位!
展开
 我来答
网海1书生
科技发烧友

2018-12-27 · 擅长软件设计、WEB应用开发、小程序
网海1书生
采纳数:12311 获赞数:26225

向TA提问 私信TA
展开全部

把三个坐标点放到一个数组里:

var d = [[0,0],[10,0],[5,5]];

然后用个变量i表示A点在数组d中的初始序号:

var i = 0;

这样ABC三个点的坐标就是:

var a, b, c
a = d[i];
b = d[(i+1)%3];
c = d[(i+2)%3];

向右旋转时:

a = d[++i%3];
b = d[(i+1)%3];
c = d[(i+2)%3];

向左旋转时:

a = d[--i<0?2:i];
b = d[(i+1)%3];
c = d[(i+2)%3];
追问
最后一个a,需要%3,非常感谢
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式