已知两点,怎样画一条直线?

不用cocos 自带 Grafces函数,而是算出两点连线上滴很多点,画出这些点行吗?

怎样算出这些点坐标?

1赞

这是数学问题吧,一条线段上多少个点可以自己点,每个点的坐标是用数学能算出来了。

二元一次方程

兄弟,上菜好吗

y = kx + b;
已知两点,可以求斜率吧,任意取两个点中的一点(x,y),能求出b了吧,这不方程就有了吗,这样不就能根据x求出y了啊,x的范围也有了,直线上有无数的点,所以你对x怎么取值了

可以看一下 DDA 算法Bresenham 算法

他又不用自己去实现绘图,只是使用引擎而已,用不上这些算法。

↑ 紫薯布丁

兄弟,我40岁了,可能脑子已经不好使了,能不能直接给我一个公式啊。现在已知pos1(x1,y1) , pos2(x2,y2) 已知我要10个点,平分线长,怎样得到一个这10个点滴数组?:joy:

求得了方程 你再根据自己需要的改吧

2点式有个弊端 不能表示锤子或者水平的直线

这个问题超级简单。。。我看楼上那些给这个那个公式的,我也是醉了。。太麻烦了。。。

2点决定了一个向量 delta = cc.Vec2(…) ,给delta向量长度拆分,你想要多少个点(无数个点)都可以,使用起始向量加上这个 delta 向量的拆分向量,这条直线上的所有点全部拿到了。

兄弟,当然,我很看好你,那这个问题泥:http://forum.cocos.com/t/cc-jumpto-jumpto-position-y-height-jumps-pos-x-y/56380

在此我也感谢 @yyd137138329 @1111228滴回答

1赞

Graphics 组件参考 · GitBook
http://docs.cocos.com/creator/manual/zh/components/graphics.html

兄弟,我试了一下,不知道具体咋操作 :joy:

你必须有粒度。这个没有什么难的,只是要细心,按照像素来。例如设计分辨率为1080p,你的每个点是1像素,那么横竖点是不一样的。如果是一个像素,你只在右边设计,那么两点间的点数是这条线的投影。就举一个例子吧,后面的自己想,如图:

这个问题就稍微复杂一点,但是也并不是非常复杂。2种解决方式:

第一,使用贝塞尔曲线,这种方式用不着向量,网上有个现成的公式,二阶的贝塞尔曲线公式,通过起点、终点、控制点能直接返回曲线上所有的点,我有个祖马游戏,地图编辑器上的曲线就是用贝塞尔公式计算的。

第二,依然使用向量求解,因为你使用帧数来拆分,简单点做法:x轴方向做匀速运动,y轴方向做匀速运动,x轴方向、y轴坐标方向向量使用帧数等分,就是速度向量了,这样2个方向同时运动就是一个抛物线路径。当然,这里面有一种情况,如果你想做加速度和减速度运动的话,那需要考虑加速度向量以及摩擦力的值,稍微会麻烦一点,思路还是从2个方向考虑。

不会操作的话,说明你向量用的太少了。。你可以看一些简单的物理引擎的源码,都是向量操作,这样会加深你对向量的理解。

给我两个解好吗?我真滴老了,没有你们有时间了,所以我直接拿你滴解来当学习,咱是有偿滴好吗?两个解,你加我QQ29492511,200元小小回报,解答直接放这里吧,我也不会开玩笑滴,我在这里都混2年了,信誉很重要哈。注意,有一个要求, jump 那个要完全引用官方做法,意思说官方是怎样算出每帧坐标滴,这里也要用相同算法。

这个问题我以前也问过,这个就是解:http://forum.cocos.com/t/graphics/51776/8 :joy:

目前我还不知道 jump 这个问题滴解哟:joy: