更改颜色和形状ft。《惊奇队长》
其实一开始刚看看无限之战后,我一度犹豫看惊奇队长《惊奇队长》的,除非是复仇者被打得太惨了,另外因为惊奇队长的外表与造型我不行,加上网路两极的影评,不过就像《 Alita》好坏应该还是要你自己去证明它,毕竟起源电影就是有身世解谜的感觉。
看完觉得很以女性的角度去拍,自我定义的探索,成长环境性别歧视的奋斗,对女性至高无上博士的开始,当与最高情报对战时把脖子上的贴纸拿掉的时候,我仿佛看到标签上写的字是-女人,是容易很刻意,但看得很爽。
不过惊奇队长最后以一挡百的超能力真的让我太惊奇也太惊吓了,惊奇到我觉得太跳跃,太虎烂…可怜前面Jude Low饰演的Yon-Roggsh被铺得这么好…。
另外值得一提就是整部片的音乐就是非常90的庞克摇滚,一听到大学时期喜欢的Garbage女主唱的“ Only Happy When It Rains”,我的拳头都硬了…(跟船长Marvel一样)
这次的目标是画惊奇队长身后那个像枫叶的八芒星标志和上霓虹色,这个概念的发想是片中小女孩为惊奇队长换掉克里人的军服,按着按钮选了各种配色,最后是惊奇队长身上的件。
- 使用Geogebra
GeoGebra | 免费的数学应用程序–全球超过1亿学生和教师使用
获取免费的在线数学工具,用于图形,几何,3D等! www.geogebra.org
2.一半对衬的写法
从程式制作国旗—利用游乐场画画加拿大国旗
这次的作业是利用程式来画出国旗,我挑选了加拿大国旗来做练习 medium.com
一开始使用Geogebra找座标时时,以左下为(0,0),并且按照iPhone8的大小设图大小为375 * 664
然后star View的裁切图就跑到下面,我想了老半天,啊,iPhone的(0,0)在左上!,不管负值,key正数就对了。
//星星座标
var starPointA = CGPoint(x:200,y:0)
var starPointB = CGPoint(x:107,y:160)
var starPointC = CGPoint(x:25,y:143)
var starPointD = CGPoint(x:43,y:235)
var starPointE = CGPoint(x:-56,y:286)
var starPointF = CGPoint(x:52,y:342)
var starPointG = CGPoint(x:25,y:434)
var starPointH = CGPoint(x:115,y:416)
var starPointI = CGPoint(x:200,y:513)
var starPoints:[CGPoint] = [starPointA,starPointB,starPointC,starPointD,starPointE,starPointF,starPointG,starPointH,starPointI]
不过我也发现因为座标是绝对值,从而的缺点就是没办法做Auto Layout
例如原来这个座标因为是照iPhone8的大小去捉位置的,放到iPhoneXR星芒裁图就会跑掉。
然后使用UIBezierPath()画星星,局部是starView.addSubview(bgImageView),这样就会产生星芒裁切的效果
//画一半星星
让 starPath = UIBezierPath()
让 starPoint = starPoints [0]
starPath.move(发送至:starPoint)
//产生另一半的星星
对于 i in 0 .. <starPoints.count {
starPath.addLine(to:starPoints [i])
for j in 0 .. <starPoints.count {
starPoints [j] .x =(200-starPoints [j] .x)+ 200
starPath.addLine(to:starPoints [j])
}
starPath.close()
让 starLayer = CAShapeLayer()
starLayer.path = starPath.cgPath
starView.layer.mask = starLayer
starView.addSubview(bgImageView)
}
另外还有做slider控制gradientLayer可以乱数产生RGB的值,实际上使用原来的按钮控制就可以,另外做slider的原因是slider拉的时候会有海报里队长闪烁变化的感觉。
func gradientChanged(){
让红色= Double.random(在:0 ... 1)
让绿色= Double.random(在:0 ... 1)
让蓝色= Double.random(in:0 ... 1)
让 alpha = Double.random(in:0 ... 1)
starView.backgroundColor = UIColor(红色:CGFloat(红色),绿色:CGFloat(绿色),蓝色:CGFloat(蓝色),alpha:CGFloat(alpha))
让 gradientLayer = CAGradientLayer()
gradientLayer.frame = gradationImageView.bounds
gradientLayer.colors = [UIColor.blue.cgColor,UIColor.magenta.cgColor]
gradientLayer.startPoint = CGPoint(x:0,y:0)
gradientLayer.endPoint = CGPoint(x:1,y:1)
gradientLayer.locations = [0,NSNumber(value:gradientSlider.value)]
gradationImageView.layer.addSublayer(gradientLayer)
}
特别要注意gradationImageView的alpha值要设0才能让变化跑出来
好啦,接下来勇敢地往惊奇队长胸口的星芒按下去(如果你不怕被欧飞到外太空的话),就可以看到效果惹恼。
留在奇妙的Github中!
gmb728 / captainMarvel
通过在GitHub上创建一个帐户为gmb728 / captainMarvel开发做出贡献。 github.com