ios怎么改变ios 绘制扇形形的初始坐标点

100分悬赏:Flex 画扇形 完了之后 如何获取扇形内的坐标点 (解决后继续追加悬赏分)_百度知道
100分悬赏:Flex 画扇形 完了之后 如何获取扇形内的坐标点 (解决后继续追加悬赏分)
var cx=x+r*M/&#47.sin(angleMid);sector.sin(startFrom));180,private function drawSector(x;2;/180;Math,cx.Math.sin(startFrom)。 --找到圆心位置angle=(Math.cos(angleA&#47:Number, r:Number=angle/45); &#47.cos(startFrom);&#47.graphics:Number.lineStyle(1:Number:Sprite=new Sprite();
var by=y+r&#47?360,true)。或者哪位大神有更好的方法给赐教下~~~
下边是我画扇形的方法.cos(startFrom);
sector.graphics.ceil(Math.abs(angle)/ i&/&#47:Number, y);当前绘画位置移动到 (x.
sector求扇形内的坐标点;
startFrom=startFrom*Math,扇形填充颜色
:Number=Math,1,y+r*Math:Sprite
var n,扇形角度angle.moveTo(x,y),所以必须求得扇形内的坐标点,color.graphics:angle.lineTo(x+r*M
var angleA,扇形半径r:Number.PI&#47.PI&#47,by.curveTo(bx,0);扇形的第一条开始边
for (var i=1.graphics.cos(angleA/=n; i++) {
startFrom+=angleA;
var cy=y+r*Math!=360) {
var angleMid=startFrom-angleA&#47,&#47.cos(angleMid);定义绘制扇形的线条粗细,
var bx=x+r&#47,y).
return sector.abs(angle)&gt,需要坐标来锁定图标的位置.beginFill(0xFFFFFF,扇形开始边所在坐标系的度数startFn.clear(), 及透明度
sector:uint),cy).endFill(),已知扇形所在圆圆心(x,及颜色
2)*M2)*M360),y)坐标, startFrom,因为我要向这个扇形内放置图标;
angleA=angleA*Math.lineTo(x
提问者采纳
这里可能有角度正负问题;距离.random() *
&#47.random() * angle + startF&#47.cos(alpha).sin(alpha), cy + distance * Math:distance = Math:角度;点就是 (cx + distance * Math:alpha = Math随机以下数值
您好,您的方法我试了,很不错,但是和我要的结果稍微有差别,但是这个思路是对的。您这个最后得到的结果是无论angle的度数是多大,最后得到的坐标是这个扇区所在圆内的任一坐标,并非此圆内某一特定扇区的随机坐标。还劳烦您再费下心,帮我看看,如何修改修改,让随机出来的是某一特定角度,特定扇形内的随机坐标,谢谢
var&particle:IVisualElement&=&new&Particle()&as&IVisualE&//自定义的圆点控件rr&=&r&*&Math.random();//rr&=&r&*&Math.sqrt(Math.random());&//如果要等概率,可以用本行随机alpha&=&angle&*&Math.random()&+&startAparticle.x&=&cx&+&rr&*&Math.cos(alpha);particle.y&=&cy&+&rr&*&Math.sin(alpha);containerGroup.addElement(particle);全部代码看附件
提问者评价
非常感谢~~~
其他类似问题
你可以先找扇形中心的坐标,即改变坐标点的半径和角度值,然后根据你的需求去调整图标的位置,首先你得知道你要找的点的半径,就可以计算出它的x y,然后计算这个点的角度刚好做过一个这样的东西
我的意思是:只要这个点在这个扇形内就可以,位置是随机的,所以这个扇形到圆心的距离也是随机的,只要比扇形的半径小就可以;所以有没有一个公式或者方法能求出这个扇形内的点的坐标集合;或者这样说吧:我现在要向画好的扇区里放5个图标,位置随机,只要在扇形内就OK,已知条件就是上边的,如何求解
随机也是没问题的。就是随机半径值,然后随机角度值,换算成xy坐标值。如果要求图标不能超出扇形范围,那随机的值要在更小的一个范围内,即类似扇形内部要加一个边距。
flex的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁[Objective-C/iOS]破解UIView中坐标系的秘密:关于UIView中的frame、bound和center
对于刚刚接触iOS开发不久的新手来说,UIView中的frame、bound和center的确容易产生思维的误区,尤其是想要对视图类的bound这个概念若想要理解深入,真的要花一番功夫。在经过一系列查阅参考资料和动手试验之后,终于对这几个概念产生了一些领悟,记录于此可供有同样困惑的同学参考。
首先是我参考过的一篇博文http://blog.csdn.net/mad1989/article/details/8711697,里面对这几个概念做了一些解释可是我依然觉得有些困惑没能得到解释清楚。所以,剩下的只有通过我们自己的实验来探索了。
首先贴一篇博文做参考,http://blog.csdn.net/mad1989/article/details/8711697;这篇博文已经对UIView的frame和bound做了一些阐述,但是我依然觉得有些地方有些语焉不详,因此在这里通过自己的一些实验对其做一些补充,以期让读者不再有任何的疑惑。
在xcode中新建一个空工程,在AppDelegate.m文件的didFinishLaunchingWithOptions:(NSDictionary
*)launchOptions函数中加入下面的程序
&&UIView *view1 = [[UIView alloc] initWithFrame:CGRectMake(50, 100, 200, 200)];
& & [view1 setBounds:CGRectMake(25, 25,
200, 200)];
& & [self.window addSubview:view1];
& & UIView *view2 = [[UIView alloc] initWithFrame:CGRectMake(0, 0,
100, 100)];
view2.backgroundColor
= [UIColor redColor];
& & [view1 addSubview:view2];
& NSLog(@"view1 frame:%@========view1
bounds:%@========view1 center:%@",NSStringFromCGRect(view1.frame),NSStringFromCGRect(view1.bounds),NSStringFromCGPoint(view1.center));
& NSLog(@"view2 frame:%@========view2
bounds:%@========view2 center:%@",NSStringFromCGRect(view2.frame),NSStringFromCGRect(view2.bounds),NSStringFromCGPoint(view2.center));
& & [view1 release];
& & [view2 release];
程序执行之后将会在主屏幕上显示我们新添加的两个视图对象,如下图所示。
除此之外,在控制台输出窗口上,还会显示以下内容:
view1 frame:{{50, 100}, {200, 200}}========view1 bounds:{{0, 0},
{200, 200}}========view1 center:{150, 200}
view2 frame:{{0, 0}, {100,
100}}========view2 bounds:{{0, 0}, {100, 100}}========view2
center:{50, 50}
在上述程序中,我们在主窗口上添加了两个矩形视图对象,父视图为绿色,起始点为(50,100),长宽为(200,200)。在添加红色的子视图view2的时候,由于我们采用的初始化方法是initWithFrame(不存在initWithBound方法),view2就设置了其在父视图坐标系中的相对位置和大小,即相对于父视图坐标,起始点为原点(即左上角),尺寸为(100,100)。若改变其初始frame,则其相对于父视图的位置也会改变。如将程序中view2产生的代码改为:
UIView *view2
= [[UIView
initWithFrame:CGRectMake(20,
则程序运行结果如下:
同时,view2的控制台输出信息也相应变为:view2
frame:{{20, 20}, {80, 80}}========view2 bounds:{{0, 0}, {80,
80}}========view2 center:{60,
60}。我们也发现,在默认情况下,视图的bound起始点一直是(0,0);
而现在我想到的一点是,如果我们改变了视图对象的bound成员,那该对象将会产生怎样的变化呢?众所周知,bound是在子视图自己的坐标系中表示视图的位置大小,那更改后会对其本身产生什么样的影响呢?为求证这些问题,在view2建立之后,添加一条语句:
[view2 setBounds:CGRectMake(50,
同时撤销掉刚刚对其frame的改动,依旧为(0,0,100,100)。程序运行的结果如下图:
跟第一张图相比,完全没有任何变化。也就是说,改变了bound的起始点,并不会造成视图本身相对于父视图的位置移动。因为,像刚才这样将bound起始点设为(50,50),是将子视图自身坐标改变。而视图在创建的时候,initWithFrame函数参照父坐标的位置构建子视图,所以子视图本身的坐标的改动,并不会影响自身。那bound起始点的不同,究竟影响的是谁呢?
为了探寻这个问题,我们在view1创建之后,新加入下面这条语句:
& &&[view1
setBounds:CGRectMake(25, 25,
200, 200)];
此时view1的自身坐标被改变。程序运行的结果如下图所示:
从图中可以看出来,绿色父视图的位置依然没有改变,但是红色的子视图的位置向左上方经纬度各移动了25像素的距离。为什么会出现这种现象呢?父视图bound的起始点设为了(25,25),也就意味着绿色方块的左上角的像素点的本地坐标不再是(0,0),而是(25,25)。而子视图的起始渲染位置在父视图的(0,0)点,相应的也就移动到父视图的左上角了。
为了验证这个结论,我们再次修改以下程序,将view2的绘制语句改为:
& &&UIView *view2 = [[UIView alloc] initWithFrame:CGRectMake(25, 25,
100, 100)];
然后运行一下程序,显示结果如下:
可见,经过绘制子视图的时候相对于父视图的补偿,子视图和父视图的右上角又重合了,这也从另一个角度证明了我们的结果。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。IOS深入学习_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
喜欢此文档的还喜欢
IOS深入学习
本​人​收​集​后​基​于​d​e​v​e​l​o​p​ ​m​a​n​解​说​编​写​的
阅读已结束,如果下载本文需要使用
想免费下载本文?
把文档贴到Blog、BBS或个人站等:
普通尺寸(450*500pix)
较大尺寸(630*500pix)
你可能喜欢Mobile绘制扇形图 - 下载频道
- CSDN.NET
&&&&Mobile绘制扇形图
Mobile绘制扇形图
/// &summary&
/// 画饼图,左上角坐标为0,0
/// &/summary&
/// &param name=&title&&标题,如果为null或为“”这不显示标题&/param&
/// &param name=&width&&图的宽度&/param&
/// &param name=&height&&图的高度&/param&
/// &param name=&serials&&图例说明&/param&
/// &param name=&datas&&数据&/param&
/// &param name=&cutline&&是否显示图例&/param&
/// &returns&&/returns&
若举报审核通过,可奖励20下载分
被举报人:
new_coming
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动色情等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:
您可能还需要
开发技术下载排行由于iOS的UIKit默认的坐标系的原点处于视图矩形的左上角,而Quartz的通常坐标系中的原点位于左下角。因此我们在使用Qaurtz处理图形的时候往往需要将坐标系转为与Quartz相一致的状态:
void translateCoordSystem(CGContextRef context, CGRect viewFrame)
CGContextTranslateCTM(context, 0.0f, viewFrame.size.height);
CGContextScaleCTM(context, 1.0f, -1.0f);
这样就可以正常绘制了。否则用默认方式绘制会出现上下颠倒的图形。
Views(...) Comments()

我要回帖

更多关于 扇形坐标 的文章

 

随机推荐