ios绘图:绘制图形

       利用as3绘图是我特别喜欢的,因为通过as3可以绘制出各种的图形效果,就像画画一样。这段时间接触了一下ios的开发,感觉很不错。借助了之前学到as3的知识,把这之前的玩意改用了oc 来写。其实原理是一样的,跟语言没关系,只是需要翻译一下就能产生出效果。关键还是算法和公式效应。这些公式能产生一些特别好看的组合效果出来需要做一些尝试,因为效果图并不是可以预想得到,经常几次调整,这个绘图出现的效果 会让人产生一种很让人惊讶的感觉。

       在ios 绘图,需要在UiView 进行,而且还要覆盖drawRect 的行为。对于这种图形效果,关键是getPoint 获取点的坐标,这一点是很重要。然后利用开始点和结束点来进行连线,让其产生最终的效果。

      在getPoint 参数里面sin 的值 5 是可以更改的,这个值变化了,产生的效果也不一样,可以试试。

 

//
//  MyUIView.m
//  HelloGraphics
//
//  Created by xiashu on 15/3/7.
//  Copyright (c) 2015年 xiashu. All rights reserved.
//

#import "MyUIView.h"

struct AsPoint
{
    double x;
    double y;
};
typedef struct AsPoint AsPoint;

@implementation MyUIView

-(void)drawRect:(CGRect)rect
{
    //获取上下文
    CGContextRef ctx = UIGraphicsGetCurrentContext();
    CGContextSetLineWidth(ctx, 1);
    //绘图
    //第一条线
    for (int i=1; i<=360; i++)
    {
        AsPoint p =  [self getPoint:i-1];
        AsPoint p2 = [self getPoint:i-3];
        CGContextMoveToPoint(ctx, 160+p.x, 200+p.y);
        CGContextAddLineToPoint(ctx, 160+p2.x, 200+p2.y);
    }
    
    CGContextStrokePath(ctx);
}

-(AsPoint) getPoint:(NSInteger) k
{
    AsPoint p;
    double len = 150 * sin(5*k);
    p.x = len* cos(k);
    p.y = len* sin(k);
    return p;
}

@end


       



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值