`
zjjzmw1
  • 浏览: 1367871 次
  • 性别: Icon_minigender_1
  • 来自: 开封
社区版块
存档分类
最新评论

画水波纹。

    博客分类:
  • iOS
阅读更多

#import "VWWWaterView.h"

 

@interfaceVWWWaterView ()

{

    UIColor *_currentWaterColor;

    

    float _currentLinePointY;///水的top

    

    float a;///水上下抖动的幅度。。。

    float b;

    

    BOOL jia;

}

@end

 

 

@implementation VWWWaterView

 

 

- (id)initWithFrame:(CGRect)frame

{

    self = [super initWithFrame:frame];

    if (self) {

        

        [selfsetBackgroundColor:[UIColorclearColor]];

        

        a = 1.5;

        b = 0;

        jia = NO;

        

        _currentWaterColor = [UIColorblueColor];

        _currentLinePointY = 111;

        

        [NSTimerscheduledTimerWithTimeInterval:0.02target:selfselector:@selector(animateWave) userInfo:nilrepeats:YES];

        

    }

    returnself;

}

 

-(void)animateWave

{

    if (jia) {

        a += 0.01;

    }else{

        a -= 0.01;

    }

    

    

    if (a<=1) {

        jia = YES;

    }

    

    if (a>=1.5) {

        jia = NO;

    }

    

    

    b+=0.1;

    

    [selfsetNeedsDisplay];

}

 

 

// Only override drawRect: if you perform custom drawing.

// An empty implementation adversely affects performance during animation.

- (void)drawRect:(CGRect)rect

{

    

    CGContextRef context = UIGraphicsGetCurrentContext();

    CGMutablePathRef path = CGPathCreateMutable();

    

    //画水

    CGContextSetLineWidth(context, 1);

    CGContextSetFillColorWithColor(context, [_currentWaterColorCGColor]);

    

    float y=_currentLinePointY;

    CGPathMoveToPoint(path, NULL, 0, y);

    for(float x=0;x<=320;x++){

        y= a * sin( x/180*M_PI + 4*b/M_PI ) * 5 + _currentLinePointY;

        CGPathAddLineToPoint(path, nil, x, y);

    }

    

    CGPathAddLineToPoint(path, nil, 320, rect.size.height);

    CGPathAddLineToPoint(path, nil, 0, rect.size.height);

    CGPathAddLineToPoint(path, nil, 0, _currentLinePointY);

    

    CGContextAddPath(context, path);

    CGContextFillPath(context);

    CGContextDrawPath(context, kCGPathStroke);

    CGPathRelease(path);

 

    

 

}

 

分享到:
评论

相关推荐

    flash水波纹制作器

    本文将深入探讨“flash水波纹制作器”这一特定工具,特别是关于如何利用SqR来生成逼真的水波纹动画。 水波纹效果在视觉设计中是一种常见的动态元素,可以为作品增添生动感和真实感。Flash水波纹制作器,如SqR,是专...

    Qt5利用自绘QPainter实现水波纹进度条QProgressBarWater.rar

    在本文中,我们将深入探讨如何使用Qt5框架中的自绘技术,特别是利用QPainter类来实现一个具有水波纹效果的QProgressBar。首先,我们来看看这个项目的核心元素和原理。 Qt是一个跨平台的应用程序开发框架,它提供了...

    C#水波纹特效 C#wpf水波纹特效 水波纹源码

    在本文中,我们将深入探讨C#编程语言中的水波纹特效,主要关注WinForm和WPF两个平台的应用。水波纹特效是一种常见的视觉效果,它能够为用户界面增添动态感和吸引力,通常用于按钮点击、通知提示等场景。C#作为.NET...

    Android水波纹过渡动画

    "Android水波纹过渡动画"就是一个专注于实现这种效果的实例,它结合了技术与艺术,使得用户界面更加生动有趣。在这个项目中,我们将深入探讨如何创建一个水波纹特效,并了解其背后的技术原理。 水波纹特效通常指的...

    swift-WaterRippleView水波纹动画视图

    Swift-WaterRippleView是一个专为iOS开发设计的开源库,它允许开发者在应用程序中实现生动逼真的水波纹效果。这个视图组件基于Swift编程语言,为用户提供了一种便捷的方式来添加动态水波纹动画,使得用户界面更具...

    unity用shader来实现2D涟漪/水波纹特效

    在Unity游戏引擎中,2D涟漪或水波纹特效是一种常见的视觉效果,常用于模拟水面、玻璃或其他材质的动态表现。实现这种效果通常涉及到shader技术,它允许开发者自定义物体表面的渲染方式,创造出各种复杂的视觉效果。...

    cocos2dx 3.x 水波纹

    在本文中,我们将深入探讨如何在Cocos2d-x 3.x框架中实现水波纹效果,这是一种在游戏和图形应用中常见的动态视觉特效。Cocos2d-x是一个开源的游戏开发框架,支持多种编程语言,包括C++,并且在3.x版本中引入了许多...

    WEB高德地图实现水波纹扩散

    【标题】"WEB高德地图实现水波纹扩散"是一个技术实践项目,旨在展示如何在网页上利用高德地图API创建动态的水波纹效果,同时确保这种效果能够随着地图的缩放而自适应调整。这个Dome(演示示例)提供了一种创新的方式...

    windows 鼠标点击 水波纹 效果

    - **图形库**:开发者可以使用像OpenGL、DirectX或现代的跨平台库如Qt、Unity等,这些库提供了丰富的图形绘制和动画功能,能方便地创建出水波纹效果。 - **编程语言**:常见的编程语言如C++、C#、Java和Python都有...

    Android 点击出现水波纹效果

    "Android点击出现水波纹效果"就是一种常见的交互设计,它模仿了水面被触碰时产生的涟漪扩散效果,使得用户操作更加生动有趣。这个效果通常应用于按钮、列表项或其他可点击的UI元素上,以提示用户他们的点击已被系统...

    iOS 水波纹水波中心向外扩散

    本教程将深入探讨如何实现一个水波纹效果,这种效果以中心为起点,向外扩散,同时伴随着颜色的渐变。水波纹动画是一种视觉上吸引人的动态效果,常用于按钮点击、触摸反馈或者界面过渡等场景。 首先,我们需要理解...

    百度地图自定义水波纹(雷达)效果覆盖物

    在使用百度地图API进行开发时,有时候我们希望在地图上添加一些独特的视觉元素,比如水波纹或雷达效果,以增强用户体验或者突出某些特定信息。本文将深入探讨如何利用百度地图API实现自定义的水波纹(雷达)效果覆盖...

    Android按钮水波纹

    为了提升用户体验,许多开发者会为按钮添加各种视觉效果,其中“水波纹”特效是一种非常吸引人的设计。这种特效在用户点击按钮时,会产生如同水面波动般的动画效果,既美观又具有交互性。 水波纹效果主要依赖于...

    opengl 实现水波纹

    在这个"opengl 实现水波纹"的项目中,我们关注的是如何利用OpenGL来创建动态的、逼真的水面波动效果。这个程序的核心是模拟水面的物理特性,如波动、反射和折射,以创造出视觉上的水波纹。 在OpenGL中实现水波纹...

    实现Viewpager切换界面导航栏水波纹动画效果

    本文将详细讲解如何实现“Viewpager切换界面导航栏水波纹动画效果”,这是一种模仿水波纹扩散的动画效果,常用于顶部导航栏,为用户带来独特的交互体验。 首先,我们需要理解动画在Android中的实现方式。Android...

    水波纹按钮特效,支持5.0以下设备水波纹效果

    在Android开发中,为了提升用户体验和界面的美观性,开发者经常使用各种视觉特效,其中“水波纹”(Ripple)效果就是一种常见的交互反馈设计。水波纹按钮特效不仅能在用户点击时提供动态的视觉反馈,还能为应用程序...

    基于canvas使用three.js制作的立体水波纹效果

    在本文中,我们将深入探讨如何使用three.js库创建一个基于Canvas的立体水波纹效果。three.js是一个流行的JavaScript 3D库,它使得在Web浏览器中进行三维图形编程变得简单。我们将讨论涉及到的关键技术和算法,以及...

    水波纹动态屏保 水波纹动态屏保

    水波纹动态屏保是一种流行的桌面美化工具,它为用户提供了独特的视觉体验,将电脑屏幕在待机状态下转变为逼真的水波纹效果。这种动态屏保不仅能够保护显示器,防止长时间静止图像导致的烧屏现象,还能为工作或休闲...

    Flex水波纹效果project

    Flex水波纹效果项目是一种基于Adobe Flex技术实现的动态视觉效果,主要应用于用户界面设计,为用户提供更加生动、直观的交互体验。Flex是基于ActionScript 3.0和MXML的开源框架,它允许开发者创建丰富的互联网应用...

    点击水波纹效果

    然后,以这个位置为圆心,绘制一个半透明的圆形,并让它逐渐扩大,形成向外扩散的“水波纹”。这个过程通常伴随着颜色的淡化和圆形的消失,直到最终完全透明,整个动画流畅自然,给人一种沉浸式的体验。 实现这个...

Global site tag (gtag.js) - Google Analytics