关于斜率大于1的中点画线的公式推导

首先还是假设直线L的一般公式为:Ax+By+C=0,并且斜率大于1,那么这个时候代表x变化慢,y变化快,那么这时我们应该让y每次递增1,x是否递增,需要判断,判断方法如下:

首先假设直线的起点(x1,y1),终点为(x2,y2),那么从起点开始,起点的下一个点的坐标应该是(x_next,y_next),因为y每次递增1,所以y_next = y1+1,那么x_next应该取哪个点呢?

设起点的正上方的点为V1(x1,y1+1),起点的右上方顶点V2(x1+1,y1+1),这两个点的中间点M(x1+0.5,y1+1),假设直线L与y+1的交点Q(x_q,y_q),那么Ax_q+By_q+C=0成立,因为点Q在直线上,那么点M带入直线L方程得到:

Ax_m + By_m+C = ?

假设x_m = x_q + dx,因为y_m = y_q,所以Ax_m + By_m + C = A(x_q + dx) + By_q + C = (Ax_q + By_q + C) + Adx,假设直线方程L的A>0,那么如果中点M在Q的右侧,则Adx > 0,否则Adx <=0。

那么我们可以这样:

当A>0时,

x_next = x_prev(L(x_m,y_m) > 0)

x_next =x_prev + 1 (Adx <=0)<

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

孟建行

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值