win10中安装cdrx4cdr win10菜单栏空白白不显示该怎么办

html5 Canvas画图教程(3)—canvas出现1像素线条模糊不清的原因
生活已是百般艰难,为何不努力一点。下面图老师就给大家分享html5 Canvas画图教程(3)—canvas出现1像素线条模糊不清的原因,希望可以让热爱学习的朋友们体会到设计的小小的乐趣。
接上一篇canvas画线条教程 上次我们讲到,canvas有时候会出现1像素的线条模糊不清且好像更宽的情况,如下图: &这样的线条显然不是我们想要的。 这篇文章的目的就是弄清楚里面的原理,以及解决它。 大家都知道屏幕上最小的显示尺寸就是1像素,虽然小于1像素的东西可能显示不出来,但计算机可不管,他会试着画一下。 其实像素终究来说也是一个单位,假如我们把画布放大到足够大,足以看清楚每个像素,会是什么情况呢?大概是这个样子: 每个像素都有起止范围,如图所示,他们的范围从左起,跨过1像素,到右止。 如果我们画1像素线条的时候,遵循像素的起止范围,那么我们肯定能得到一个很标准的细线。如下: 但遗憾的是canvas的线条画法不一样,上一篇文章我们已经说了,canvas的每条线都有一条无限细的中线,线条的宽度是从中线向两侧延伸的。如果我们还是从第2个像素点画一条线,那么线条的中线就会靠齐到第2个像素的起点,然后我们开始画了,问题也就来了:Canvas 的线条以中线向两侧延伸,而不是向某一边延伸(比如这里,如果只是往右侧延伸,那么我们的问题就不再是问题了),延伸过后我们的线条实际上是这样的: 此时又有个问题:计算机不允许出现小于1px的图形,所以他做了一个折中的事:把这两个像素都绘制了。 所以,如此一来,本来1px的线条,就成了看起来2px宽的线条。 失败的原因找到了:Canvas中的line把中线与像素的起点对齐了,而不是像素的中间点。 那么我们怎么解决这个蛋疼的问题?也许有人已经想到了:既然是因为两个的起点不一样,那我们就把他们的起点变得一样吧! 我们让线条的中线和像素的中间点对齐就行了! 像素的中间点很好找,比如第2像素的中间点,依据图上的解释就是1.5像素的位置,那么x像素的中间点就是(x-0.5)px。 &当然,在不很严谨的场合,你使用x+0.5也是可以的。 现在我们在canvas上试试我们的研究结果。 代码如下: ctx.moveTo(100.5,100.5); ctx.lineTo(200.5,100.5); ctx.lineTo(200.5,200.5); ctx.lineTo(100.5,200.5); ctx.lineTo(100.5,100.5); ctx.closePath(); ctx.lineWidth = 1; ctx.strokeStyle = 'rgba(255,0,0,0.5)'; ctx.stroke(); 看起来对了吧? 不过貌似这样一来我们画线的时候就非常纠结,难道每次都去加这个让人郁闷的0.5?当然不是,因为我们大部分时间都是用变量保存值的,就不用给每个值加0.5 了 而且,对于lineWidth1 的线,我们也不用管它:因为只有线条宽1px的时候,这个问题才最明显。
来源:/n/6883.html
热门搜索:
黑色梦幻文字效果 PS教程图解
电脑网络经常掉线怎么办
删除IE地址栏历史记录方法
禁止CD-ROM自动运行图文步骤教程
您可能会发现,经常看到在短视频有人在表演的时候说一些鼓励的话,然后就是双击666,听的您或许摸不清头脑,我就在这里为您解答一下,请给我点赞,让我解答更加有动力。
您是否熟悉我们生活的城市是怎么命名而来的呢?中国城市的命名可是有很深的文化底蕴和历史背景的,你都知道么?我从网上搜集了大量的城市名来源,让您好好的涨涨知识,您准备好了吗?
对于爱美人士来说,美白护肤是不分季节的,即使在冬季,依然需要做好皮肤护理工作。饮食调理是护肤的一项重要措施,那么冬天美白吃什么水果呢?接下来就和我一起来看看了解一下冬季美白吃什么水果好!
产妇顺产以后多久可以洗头发?有很多产妇为了防止自己受寒所以在产后不让自己洗头发,但是又特别难受,这篇文章讲述了产妇顺产以后多长时间可以洗头发,通过这篇文章了解产妇顺产以后多久可以洗头发吧。
阴阳师是现在相当火热的一款手游,最近阴阳师又有了新的更新,玩家可以通过挑战副本来获取妖刀姬樱雨刀舞皮肤。可是的很多人不知道阴阳师妖刀姬副本阵容是怎样的,下面就给大家来详细介绍吧。
阴阳师是现在很火热的一款手机游戏,这款游戏一直在更新完善,受到很多人的追捧,就在最近阴阳师又推出了小鹿男,小鹿男作为SSR式神,很多人对它还不是很了解,下面就给大家来介绍阴阳师小鹿男御魂以及阵容搭配吧。
我们在玩阴阳师完成悬赏任务的时候,都会要求玩家找到各种式神的位置,可是很多人不知道阴阳师跳跳哥哥在哪里刷、哪里多,下面就给大家来详细介绍吧,希望对大家玩游戏有所帮助。
京津冀及周边地区出现持续雾霾天气,很是让孕妈妈们担心。持续的雾霾天气对孕妇产生了很大的影响,那么雾霾天气对孕妇危害有多大?雾霾天气孕妇怎么办?下面的文章详细介绍 了雾霾天气对孕妇的危害,一起来看看吧。
我们知道宝宝刚刚出生的时候口腔里是没有牙齿的,一般孩子在四个月以后慢慢开始出牙,每个孩子的体质不一样,所以出牙的时间也是有所差异的,宝宝出牙的时候身体会出现一些症状,家长们要及时的护理好,下面一起来看看宝宝长牙的症状有哪些。
肚子上的赘肉看上去让人烦恼,尤其是对于想穿裙子的女生来说更是一件郁闷的事情。现在减肥的方法有很多,但是很多人并不知道专门瘦肚子的方法。那么,如何瘦肚子呢?下面就给大家介绍几种减肚子的方法吧。在Xib中绘制1像素的线 - 简书
在Xib中绘制1像素的线
我们在写UI界面的时候有时会需要绘制一根 1pixel 的线来充当分隔线,类似UITableView 各个 cell 之间的分隔线。通常我们可以通过添加一个 view 来实现,如果是横线,就设定这个 view 的高度为 1pexil,如果是竖线,就设其宽度为 1pixel,注意此处的单位是 pixel,即像素。由于在 retina 屏幕中,iOS坐标系中的一个点(point)的大小并不等于1个像素,在4/4s、5/5s、6/6s中,1point == 2pixel,而在 6plus/6splus 上,1point == 3pixel,因此实际上我们想要绘制 1pixel 的线,需要设置的高度和宽度是0.5或者 1/3,也就是 & 1的。这在代码布局中很好办到,直接写上小数就可以了。但是在 xib 中,这就是一个问题了,因为 xib 中设置宽高,或者约束的时候,即使输入小数,系统也会自动给我们四舍五入,转换成整数,这就给我们设置 1pixel 的线带来了麻烦。我在 Google 中查了一下这个问题,最终找到了一个相对简单的解决方案:
首先创建 NSLayoutConstraint 的子类 NSLayoutConstraintOnePixelLine
// NSLayoutConstraintOnePixelLine.m
#import"NSLayoutConstraintOnePixelLine.h"
@implementation NSLayoutConstraintOnePixelLine
- (void)awakeFromNib {
[super awakeFromNib];
if (self.constant == 1) {
self.constant = 1 / [UIScreen mainScreen].
然后给我们想要设置为 1pixel 的 view 设置上约束,大小为 1。
再把该约束所属的类改成刚刚写的子类就可以了。
用这种方法,通过修改代码中的 constant 属性的值,我们就可以任意修改其他约束的值。

我要回帖

更多关于 cdrx4菜单栏白色 修复 的文章

 

随机推荐