ShapeAnimation-Swift

Swift 矢量动画框架
授权协议 GPL
开发语言 Swift
所属分类 iOS代码库、 动画(Animation)
软件类型 开源软件
地区 国产
投 递 者 端木朝
操作系统 iOS
开源组织
适用人群 未知
 软件概览

iOS上使用Swift实现的矢量图形动画框架,可动画绘图。

特点是可写少量代码实现常见的CoreAnimation层动画,利用闭包定制动画特性。

目前已支持下列动画函数:

  • opacityAnimation, flashAnimation 透明度、闪烁

  • scaleAnimation 放缩

  • rotate360Degrees, rotationAnimation 旋转

  • shakeAnimation 左右摇晃

  • moveAnimation, moveOnPathAnimation 沿路径移动

  • slideToRight 向右滑动

  • strokeEndAnimation 沿线描绘

    strokeColorAnimation, lineWidthAnimation, dashPhaseAnimation 线条颜色、线宽动画,虚线动画可用于亮显选择

  • switchPathAnimation 切换图形

  • animationGroup 一个层多个动画同时进行

  • applyAnimations 多个层同步动画

Move on PathRadar Circles滚动六边形

该框架还在不断更新中,欢迎Fork、点赞,欢迎动手和提建议。

代码示例:

let layer1 = addLinesLayer(view, points:[(10.0,20.0),(150.0,40.0),(120.0,320.0)])
layer1.strokeEndAnimation().apply() {
    layer1.shakeAnimation().apply()
}
let la2 = self.addLinesLayer(view, points:points2, color: UIColor.blueColor())
lla2.scaleAnimation(from:1, to:1.1, repeatCount:3).apply(duration:0.3)
let la3 = self.addLinesLayer(view, points:points3, color: UIColor.greenColor())
la3.flashAnimation(repeatCount:6).apply()
let la4 = addLinesLayer(view, points:[(10.0,20.0), (150.0,40.0), (120.0,120.0)])
let a1 = la4.moveOnPathAnimation(path).set {$0.duration=1.6}
let a2 = la4.rotate360Degrees().set {$0.repeatCount=2}
animationGroup([a1, a2]).set {$0.autoreverses=true}.apply()


 相关资料
  • 矢量或者说向量,可以通过2~4个分量表示一个向量,比如通过vec3(1,0,0)表示三维空间中一个沿着x轴正方向的三维方向向量,如果你有高中数学的基础,应该对向量有一定的了解,对于三维坐标的相关几何运算也有一定的概念。 关键字 数据类型 vec2 二维向量,具有xy两个分量,分量是浮点数 vec3 三维向量 ,具有xyz三个分量,分量是浮点数 vec4 四维向量 ,具有xyzw四个分量,分量是浮点

  • 我正在处理一个课堂问题,要求我在3D空间中模拟太阳系内行星/卫星/小行星的运动。学期初我们从矢量、质量和力开始,所以我仍在努力掌握它。 *我的问题在第4步和第5步中有详细说明。如果我一路上有什么错误,请告诉我。任何意见和指导将不胜感激。 提供的信息 空间中的每个物体都具有以下特征: 质量 位置向量 我必须使用牛顿万有引力定律: 问题 给定时间t,更新空间中每个物体的位置和速度。那么,如果t是10秒

  • Vector是由连续整数索引的值的集合。 使用Clojure中的矢量方法创建矢量。 例子 (Example) 以下是在Clojure中创建矢量的示例。 (ns clojure.examples.example (:require [clojure.set :as set]) (:gen-class)) (defn example [] (println (vector 1 2 3

  • 我试图找到一个简洁的例子,它显示了x86-64系统上java中的自动矢量化。 我在for循环中使用y[I]=y[I]x[I]实现了以下代码。这段代码可以从自动矢量化中受益,所以我认为java应该在运行时使用SSE或AVX指令编译它,以加快速度<但是,我在生成的本机代码中找不到矢量化的指令。 VecOpMicroBenchmark。java应该受益于自动矢量化: 为了了解它是否得到矢量化,我执行了以

  • 结构体定义、常量和构造函数 定义: typedef struct cpVect{ cpFloat x, y; } cpVect 零向量常量: static const cpVect cpvzero = {0.0f,0.0f}; 创建新结构体所用的便捷的构造函数: cpVect cpv(const cpFloat x, const cpFloat y)

  • 高德POI抓取 功能介绍        POI全称为Point of Interest,即兴趣点。在LSV的扩展插件中可以使用“高德POI抓取”功能来提取所选或者所绘制区域内中的所有包含自定义关键词的POI信息。 具体操作        在下载菜单中找到“高德POI抓取”功能,点击进入。        在绘制或选择所需提取POI的面后开始对关键词、POI类型进行设置,并且输入使用的高德KEY(详细