看效果,利用数学制造神奇效果:
效果还不错,看代码吧,代码很简单,不解释了,可以通过调节变量的值,动态刷新页面,制造彩色动画效果:
//
// MyMagicalView.h
// MyUIView
//
// Created by Moluth on 17/4/12.
// Copyright (c) 2017年 Moluth. All rights reserved.
//
#import <UIKit/UIKit.h>
@interface MyMagicalView : UIView{
@public double tr,tg,tb;
}
@end
//
// MyMagicalView.m
// MyUIView
//
// Created by Moluth on 17/4/12.
// Copyright (c) 2017年 Moluth. All rights reserved.
//
#import "MyMagicalView.h"
@implementation MyMagicalView
-(void)drawRect:(CGRect)rect{
// 获取图形绘制上下文
int xa=round(rect.origin.x);
int xb=round(rect.origin.x+rect.size.width);
int ya=round(rect.origin.y);
int yb=round(rect.origin.y+rect.size.height);
CGContextRef context = UIGraphicsGetCurrentContext();
double r,g,b;
for(int x=xa;x<xb;x++){
for(int y=ya;y<yb;y++){
r=(sin(x*0.0017-y*0.0005+tr+34.1)+1.0)/2.0;
g=(sin((xb-x)*0.0009+y*0.0015+tg)+1.0)/2.0;
b=(sin(x*0.0047+(yb-y)*0.0001+tb)+1.0)/2.0;
CGContextSetRGBFillColor (context, r, g, b, 1.0);//设置填充颜色
CGContextFillRect(context,CGRectMake(x, y, 1, 1));
}
}
}
@end