作者:爱夏花儿_915 | 来源:互联网 | 2023-06-13 14:43
如题 比如输入开始坐标和结束坐标,使用MoveTo LineTo 画一条线,取得线条中各点的坐标值!
11 个解决方案
为什么要这么做?既然是直线为什么不自己进行运算得到上面的点坐标呢?只需要按照一定的间隔采点就可以了吧。
直线已经是最底层的绘制了,如果是曲线的话你的问题好像还有点意义。
直接画点,不画线,画一排的点就是一条线,点的坐标就是你想要的
这个需求如果反过来可能更容易 先确定坐标点 再绘出直线
y = (y1 - y2)/(x1 - x2)(x - x1) + y1
x >= x1 && x <= x2
确定x 后 moveto
起点终点的坐标 由lbuttondown和lbuttonup 获取
有两点坐标直接求直线方程 数学里的基础
有直线方程 上面的坐标不是妥妥的, 注意x,y的取值范围
y=kx+b,利用两点解方程组求出k,b,然后你要什么点直接计算就出来了。
记住起点和终点就可以,其它点使用公式计算
(y2-y1)/(x2-x1)=(y-y1)/(x-x1)
x,y是线上的点坐标
这就一线性插值
x = f*x1 + (1-f)*x2
y= f*y1 + (1-f)*y2
f 从0~1 分段取
y = kx+b(自变、应变)是初中的直线公式
经过高中的就该是ax + by +c = 0(x,y地位均等)了
PS:我 x = c招谁惹谁了,说到直线 老有人忘了我。。。
这个问题其实不难
1、建立此直线的函数表达式
2、画出该直线
3、在OnMouseMove中捕捉当前点坐标,代入直线表达式,如果在此直线上显示点坐标,不在则直接丢掉
请问各位大大,比如我现在的开始坐标是x:50,y:50,结束坐标 x:100 ,y:100,那我要取出从开始点到结束点的连线中各点的坐标,用C怎么实现呢?画线不是问题关键!!
这就一线性插值
x = f*x1 + (1-f)*x2
y= f*y1 + (1-f)*y2
f 从0~1 分段取
x1 = 50 x2 = 100 y1 = 50 y2 =50
取f = 0.1代入
x = 0.1*50 + 0.9*100 = 95
y= 0.1*50 + 0.9*100 = 95
即过点(95,95)
5,95
f = 0.12 代入过点(94,94)
若分50段 即取 f = 0.02 0.04 0.06 ... 0.96 0.98 即使中间各点
分k段 f取 1/k 2/k .... (k-1)/k