每周工作学习总结(三月第2周)

本周的工作主要是在前面几周工作的基础上进行增加或者修改,整体而言没有遇到大的问题,只有在周五才发现了一个问题。
这个问题是在给定的范围内,以相同的间隔绘制指定条数的图形,会出现填不满整个绘图区域的问题。
我想了下,问题的原因应该时这样的:绘图区的宽度(width)可能不是所绘图的条数(n)的整数倍,这就导致在进行相除时,导致每个间隔(perwidth)并不是一个整数。绘图是以像素点进行,而像素的最小单位是1,这就要求间隔必须为整数。在默认的int型除法中,采用的是高斯函数,即取得不大于商的最大整数,这就导致实际上n* perwidth<width,即所占用的长度区间是小于整个绘图区域的。
目前我思考的一个方法是,在数据的条数与像素位置进行转换时,对所取得的像素位置进行4舍5入,那么第x条数据所需要的绘图位置,为
(int)(x*((float)width/(float)n)+0.5)
下面编写通过设定width和n来计算一下每个区间开始的像素位置;
这里设width=954,n=240
954/240=3.975
在这里插入图片描述
首先是用原始方法,不进行四舍五入的整型除法
在这里插入图片描述
最后一个绘图区域的开始位置为717,还有230多的区域没有使用
后使用上面公式给到的方法在这里插入图片描述
最后一个区域没950,平均每个区域的大小为4,中间有个别区域的大小为3
在这里插入图片描述
整体的效果达到了设计的预期要求

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值