随手画圆,台湾顺时针还是逆时针画圆和逆时针画圆的人有什么区别

你能右脚顺时针画圆,同时右手写6吗? - 来自非正常人类研究中心的第一个记录 - 十五言
下面请和我一起做一个实验。抬起你的右脚,在空中顺时针画圆。与此同时,伸出你的右手,在空中写6。结果如何?你的右脚是不是会自动变成逆时针画圆?这个实验来自一本介绍程序员应该如何思考的畅销书。按照书中的说法,我们的右脚会自动变换画圆的方向,这是大脑的一种协调反应。但是我第一次做实验的时候,右脚居然没有反向!我可以右脚顺时针画圆,同时右手在空中写6。书里面说,只有左右脑分裂的人才会这样。于是我继续做实验。我发现,当我的意识完全集中在右手上,右脚就会自动变方向。事实上,当我的大脑向右手发出“写6”的指令,而我的手还没有抬起来的时候,我的右脚就变方向了。请读者朋友们做完实验告诉我结果好吗?
收录了本文的主题
大家都在看
阅读下一篇
想看企鹅只能去南极嘛?新西兰也可以!
点击微信右上角,可发送给朋友,或分享到朋友圈。
收录到我的主题
大家都在看iOS中drawRect方法实现画圆角矩形,顺时针和逆时针
iOS中drawRect方法实现画圆角矩形,顺时针和逆时针
http://blog.csdn.net/xiangzi_011/article/details/
在iOS中创建自己独特的UIView,需要从UIView继承一个子类,然后重写drawRect方法,里面用GC画自己想要的效果即可。我们这里实现一个圆角矩形的绘制。
例子引用了这篇博客的代码:http://cocoa.venj.me/blog/draw-round-rectangle-with-quartz-on-ios/
注意在画圆弧的时候,用到了CGContextAddArc方法,
CGContextAddArc(CGContextRef&c,&CGFloat&x,&CGFloat&y,&CGFloat&radius,CGFloat&startAngle,&CGFloatendAngle, int clockwise)
CGContextRef:&图形上下文
x,y: 弧线的原点坐标
radius:&半径
startAngle, endAngle:&开始的弧度,结束的弧度
clockwise:&画弧线的方向(0是逆时针,1是顺时针)
这个方法使用起来还是比较容易混乱的,完全是因为在iOS中y坐标系是进行了反转的,坐标原点在左上角,向下是增长方向(书本上的坐标系y轴方向向上)。注意弧度的正负永远是我们学习数学时的认识,即y坐标系方向向上,x坐标系方向向右,角度是逆时针方向为正。不管顺时针还是逆时针画,最后都是要沿着y坐标系进行一次镜像反转。
好了,直接上代码,先逆时针方向,注意为了更好的坐标点的衔接,逆时针时先画线,再画弧线。从左上角(radius,0)点开始画。
&- (void)drawRect:(CGRect)rect
&& &&CGFloat&width = rect.size.width;
&& &&CGFloat&height = rect.size.height;
&& &&//&简便起见,这里把圆角半径设置为长和宽平均值的1/10
&& &&CGFloat&radius = (width + height) *&0.05;
&& &&//&获取CGContext,注意UIKit里用的是一个专门的函数
&& &&CGContextRef&context =UIGraphicsGetCurrentContext();
&& &&//&移动到初始点
&& &&CGContextMoveToPoint(context, radius,&0);
&& &&//&绘制第1条线和第1个1/4圆弧,右上圆弧
&& &&CGContextAddLineToPoint(context, width - radius,0);
&& &&CGContextAddArc(context, width - radius, radius, radius, -0.5&*M_PI,0.0,0);
&& &&//&绘制第2条线和第2个1/4圆弧,右下圆弧
&& &&CGContextAddLineToPoint(context, width, height - radius);
&& &&CGContextAddArc(context, width - radius, height - radius, radius,0.0,0.5&*M_PI,0);
&& &&//&绘制第3条线和第3个1/4圆弧,左下圆弧
&& &&CGContextAddLineToPoint(context, radius, height);
&& &&CGContextAddArc(context, radius, height - radius, radius,0.5&*M_PI,M_PI,0);
&& &&//&绘制第4条线和第4个1/4圆弧,左上圆弧
&& &&CGContextAddLineToPoint(context,&0, radius);
&& &&CGContextAddArc(context, radius, radius, radius,M_PI,1.5&*M_PI,0);
&& &&//&闭合路径
&& &&CGContextClosePath(context);
&& &&//&填充半透明红色
&& &&CGContextSetRGBFillColor(context,1.0,0.0,0.0,0.5);
&& &&CGContextDrawPath(context,kCGPathFill);
下面是顺时针方向的实现,注意这时候是先画弧线,再画直线,另外注意CGContextAddArc方法中start弧度和end弧度以及原点的变化。这里也是从左上角(radius,0)点开始画。
- (void)drawRect:(CGRect)rect
& &&CGFloat&width = rect.size.width;
& &&CGFloat&height = rect.size.height;
& &&//&简便起见,这里把圆角半径设置为长和宽平均值的1/10
& &&CGFloat&radius = (width + height) *&0.05;
& &&//&获取CGContext,注意UIKit里用的是一个专门的函数
& &&CGContextRef&context =UIGraphicsGetCurrentContext();
& &&//&移动到初始点
& &&CGContextMoveToPoint(context, radius,&0);
& &&//&绘制第1个1/4圆弧和第1条线,左上圆弧
& &&CGContextAddArc(context, radius, radius, radius,1.5&*M_PI,M_PI,1);
& &&CGContextAddLineToPoint(context,&0, height - radius);
& &&//&绘制第2个1/4圆弧和第2条线,左下圆弧
& &&CGContextAddArc(context, radius, height - radius, radius,M_PI,0.5&*M_PI,1);
& &&CGContextAddLineToPoint(context, width - radius, height);
& &&//&绘制第3个1/4圆弧和第3条线,右下圆弧
& &&CGContextAddArc(context, width - radius, height - radius, radius,0.5&*M_PI,0,1);
& &&CGContextAddLineToPoint(context, width,height - radius);
& &&//&绘制第4个1/4圆弧和第4条线,右上圆弧
& &&CGContextAddArc(context, width - radius, radius, radius,0, -0.5&*M_PI,1);
& &&CGContextAddLineToPoint(context, radius,0);
& &&//&闭合路径
& &&CGContextClosePath(context);
& &&//&填充半透明红色
& &&CGContextSetRGBFillColor(context,1.0,0.0,0.0,0.5);
& &&CGContextDrawPath(context,kCGPathFill);
希望上面的代码能帮助大家顺便理解圆弧的使用。
感谢关注 Ithao123精品文库频道,是专门为互联网人打造的学习交流平台,全面满足互联网人工作与学习需求,更多互联网资讯尽在 IThao123!
Laravel是一套简洁、优雅的PHP Web开发框架(PHP Web Framework)。它可以让你从面条一样杂乱的代码中解脱出来;它可以帮你构建一个完美的网络APP,而且每行代码都可以简洁、富于表达力。
产品设计是互联网产品经理的核心能力,一个好的产品经理一定在产品设计方面有扎实的功底,本专题将从互联网产品设计的几个方面谈谈产品设计
随着国内互联网的发展,产品经理岗位需求大幅增加,在国内,从事产品工作的大部分岗位为产品经理,其实现实中,很多从事产品工作的岗位是不能称为产品经理,主要原因是对产品经理的职责不明确,那产品经理的职责有哪些,本专题将详细介绍产品经理的主要职责
Swift是Apple在WWDC2014所发布的一门编程语言,用来撰写OS X和iOS应用程序[1]。在设计Swift时.就有意和Objective-C共存,Objective-C是Apple操作系统在导入Swift前使用的编程语言
Swift是供iOS和OS X应用编程的新编程语言,基于C和Objective-C,而却没有C的一些兼容约束。Swift采用了安全的编程模式和添加现代的功能来使得编程更加简单、灵活和有趣。界面则基于广受人民群众爱戴的Cocoa和Cocoa Touch框架,展示了软件开发的新方向。
IThao123周刊http://blog.csdn.net/xiangzi_011/article/details/
在iOS中创建自己独特的UIView,需要从UIView继承一个子类,然后重写drawRect方法,里面用GC画自己想要的效果即可。我们这里实现一个圆角矩形的绘制。
例子引用了这篇博客的代码:
注意在画圆弧的时候,用到了CGContextAddArc方法,
CGContextAddArc(CGContextRef&c,&CGFloat&x,&CGFloat&y,&CGFloat&radius,CGFloat&startAngle,&CGFloatendAngle, int clockwise)
CGContextRef:&图形上下文
x,y: 弧线的原点坐标
radius:&半径
startAngle, endAngle:&开始的弧度,结束的弧度
clockwise:&画弧线的方向(0是逆时针,1是顺时针)
这个方法使用起来还是比较容易混乱的,完全是因为在iOS中y坐标系是进行了反转的,坐标原点在左上角,向下是增长方向(书本上的坐标系y轴方向向上)。注意弧度的正负永远是我们学习数学时的认识,即y坐标系方向向上,x坐标系方向向右,角度是逆时针方向为正。不管顺时针还是逆时针画,最后都是要沿着y坐标系进行一次镜像反转。
好了,直接上代码,先逆时针方向,注意为了更好的坐标点的衔接,逆时针时先画线,再画弧线。从左上角(radius,0)点开始画。
&- (void)drawRect:(CGRect)rect
&& &&CGFloat&width = rect.size.width;
&& &&CGFloat&height = rect.size.height;
&& &&//&简便起见,这里把圆角半径设置为长和宽平均值的1/10
&& &&CGFloat&radius = (width + height) *&0.05;
&& &&//&获取CGContext,注意UIKit里用的是一个专门的函数
&& &&CGContextRef&context =UIGraphicsGetCurrentContext();
&& &&//&移动到初始点
&& &&CGContextMoveToPoint(context, radius,&0);
&& &&//&绘制第1条线和第1个1/4圆弧,右上圆弧
&& &&CGContextAddLineToPoint(context, width - radius,0);
&& &&CGContextAddArc(context, width - radius, radius, radius, -0.5&*M_PI,0.0,0);
&& &&//&绘制第2条线和第2个1/4圆弧,右下圆弧
&& &&CGContextAddLineToPoint(context, width, height - radius);
&& &&CGContextAddArc(context, width - radius, height - radius, radius,0.0,0.5&*M_PI,0);
&& &&//&绘制第3条线和第3个1/4圆弧,左下圆弧
&& &&CGContextAddLineToPoint(context, radius, height);
&& &&CGContextAddArc(context, radius, height - radius, radius,0.5&*M_PI,M_PI,0);
&& &&//&绘制第4条线和第4个1/4圆弧,左上圆弧
&& &&CGContextAddLineToPoint(context,&0, radius);
&& &&CGContextAddArc(context, radius, radius, radius,M_PI,1.5&*M_PI,0);
&& &&//&闭合路径
&& &&CGContextClosePath(context);
&& &&//&填充半透明红色
&& &&CGContextSetRGBFillColor(context,1.0,0.0,0.0,0.5);
&& &&CGContextDrawPath(context,kCGPathFill);
下面是顺时针方向的实现,注意这时候是先画弧线,再画直线,另外注意CGContextAddArc方法中start弧度和end弧度以及原点的变化。这里也是从左上角(radius,0)点开始画。
- (void)drawRect:(CGRect)rect
& &&CGFloat&width = rect.size.width;
& &&CGFloat&height = rect.size.height;
& &&//&简便起见,这里把圆角半径设置为长和宽平均值的1/10
& &&CGFloat&radius = (width + height) *&0.05;
& &&//&获取CGContext,注意UIKit里用的是一个专门的函数
& &&CGContextRef&context =UIGraphicsGetCurrentContext();
& &&//&移动到初始点
& &&CGContextMoveToPoint(context, radius,&0);
& &&//&绘制第1个1/4圆弧和第1条线,左上圆弧
& &&CGContextAddArc(context, radius, radius, radius,1.5&*M_PI,M_PI,1);
& &&CGContextAddLineToPoint(context,&0, height - radius);
& &&//&绘制第2个1/4圆弧和第2条线,左下圆弧
& &&CGContextAddArc(context, radius, height - radius, radius,M_PI,0.5&*M_PI,1);
& &&CGContextAddLineToPoint(context, width - radius, height);
& &&//&绘制第3个1/4圆弧和第3条线,右下圆弧
& &&CGContextAddArc(context, width - radius, height - radius, radius,0.5&*M_PI,0,1);
& &&CGContextAddLineToPoint(context, width,height - radius);
& &&//&绘制第4个1/4圆弧和第4条线,右上圆弧
& &&CGContextAddArc(context, width - radius, radius, radius,0, -0.5&*M_PI,1);
& &&CGContextAddLineToPoint(context, radius,0);
& &&//&闭合路径
& &&CGContextClosePath(context);
& &&//&填充半透明红色
& &&CGContextSetRGBFillColor(context,1.0,0.0,0.0,0.5);
& &&CGContextDrawPath(context,kCGPathFill);
希望上面的代码能帮助大家顺便理解圆弧的使用。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:1376次
排名:千里之外}

我要回帖

更多关于 台湾顺时针还是逆时针 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信