質問編集履歴
21
修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -258,7 +258,7 @@
|
|
258
258
|
|
259
259
|
```
|
260
260
|
|
261
|
-
**8/24**
|
261
|
+
**8/24 現状・メモ**
|
262
262
|
|
263
263
|
```ここに言語を入力
|
264
264
|
|
@@ -333,3 +333,25 @@
|
|
333
333
|
}
|
334
334
|
|
335
335
|
```
|
336
|
+
|
337
|
+
|
338
|
+
|
339
|
+
〜〜自分用メモ〜〜
|
340
|
+
|
341
|
+
**円の右を 0 として基準となり、360°周回すると 2π となる**
|
342
|
+
|
343
|
+
![円の右を 0 として基準となり、360°周回すると 2π となる](27d73faf3548fb8fca6b7c575819a7f1.png)
|
344
|
+
|
345
|
+
|
346
|
+
|
347
|
+
|
348
|
+
|
349
|
+
**逆正弦atan2(アークタンジェント2)**
|
350
|
+
|
351
|
+
> atan2は点(x, y)とx軸によって表されるベクトルの角度(θ)を返します。
|
352
|
+
|
353
|
+
> よって位置から角度を求めることができます。
|
354
|
+
|
355
|
+
|
356
|
+
|
357
|
+
参考:[2つの座標から角度や距離を求める](https://qiita.com/arthur87/items/23d3c896dafbc8223fd5)
|
20
追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,3 +1,7 @@
|
|
1
|
+
swift3で書かれた[github](https://github.com/ispiropoulos/PRGRoundSlider)を参考にしております。
|
2
|
+
|
3
|
+
|
4
|
+
|
1
5
|
**やりたいこと:以下の青い「Single Slider」を「左下と右下に位置する始点(0%)と終点(100%)」を、「始点(0%)を左上、終点(100%)を右上」に設置し、スライダーのつまみを真ん中の円の下側を潜るように反時計回りに半周して終わるように変更を加えたい。(そっくりそのまま逆さまの状態に)**
|
2
6
|
|
3
7
|
|
@@ -58,7 +62,7 @@
|
|
58
62
|
|
59
63
|
// 回転する
|
60
64
|
|
61
|
-
context.rotate(by: -selectionAngle * CGFloat.pi/180)
|
65
|
+
context.rotate(by: -selectionAngle * CGFloat.pi/180)
|
62
66
|
|
63
67
|
|
64
68
|
|
@@ -74,9 +78,23 @@
|
|
74
78
|
|
75
79
|
```
|
76
80
|
|
77
|
-
|
81
|
+
**やったこと②**
|
82
|
+
|
78
|
-
|
83
|
+
以下の部分にて、selectionAngleからマイナスをなくし、CGFloat.pi/180を150にしたところ
|
84
|
+
|
79
|
-
|
85
|
+
> context.rotate(by: **-**selectionAngle * CGFloat.pi/**180**)
|
86
|
+
|
87
|
+
↓
|
88
|
+
|
89
|
+
> context.rotate(by: selectionAngle * CGFloat.pi/**105**)
|
90
|
+
|
91
|
+
![イメージ説明](a683cb1b7e0c56f0ebcf444213740901.gif)
|
92
|
+
|
93
|
+
少しだけ理想的な動きになりましたが、スライダーの操作がスライダーとシンクロしなくなってしまった。
|
94
|
+
|
95
|
+
|
96
|
+
|
97
|
+
|
80
98
|
|
81
99
|
文字数の制限で全て載せられないのですが、メインのファイルは以下です。
|
82
100
|
|
19
修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
**以下の青い「Single Slider」を「左下と右下に位置する始点(0%)と終点(100%)」を、「始点(0%)を左上、終点(100%)を右上」に設置し、スライダーのつまみを真ん中の円の下側を潜るように反時計回りに半周して終わるように変更を加えたい。(そっくりそのまま逆さまの状態に)**
|
1
|
+
**やりたいこと:以下の青い「Single Slider」を「左下と右下に位置する始点(0%)と終点(100%)」を、「始点(0%)を左上、終点(100%)を右上」に設置し、スライダーのつまみを真ん中の円の下側を潜るように反時計回りに半周して終わるように変更を加えたい。(そっくりそのまま逆さまの状態に)**
|
2
2
|
|
3
3
|
|
4
4
|
|
18
修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -6,13 +6,13 @@
|
|
6
6
|
|
7
7
|
|
8
8
|
|
9
|
-
**や
|
9
|
+
**やったこと**
|
10
|
+
|
10
|
-
|
11
|
+
始点と終点をstartAngleとendAngleを210と-30から130と50に変更することで、左上と右上に移動させて円弧の描写をclockwise: falseで反転させることに成功。そこから先のスライダーの動きに関してどうやったら反時計回りでかつ0%から100%に辿り着けるようになるかまだ、解決策を考えている。
|
12
|
+
|
11
|
-
![イメージ説明](
|
13
|
+
![![イメージ説明](1bbfed7da0fe42b880c56aad492e1844.gif)
|
12
|
-
|
13
|
-
|
14
|
-
|
14
|
+
|
15
|
-
|
15
|
+
動きに関しては0%からはうまく始まるが、スライダーのつまみが100%の終点を超えて180度近く、先のところまで可動してしまう。円弧の計算の仕組みが難しいため、わかるまで苦戦中です。
|
16
16
|
|
17
17
|
|
18
18
|
|
@@ -156,21 +156,9 @@
|
|
156
156
|
|
157
157
|
|
158
158
|
|
159
|
-
|
159
|
+
|
160
|
-
|
161
|
-
|
160
|
+
|
162
|
-
|
163
|
-
|
161
|
+
|
164
|
-
|
165
|
-
動きに関しては0%からはうまく始まるが、スライダーのつまみが100%の終点を超えて180度近く、先のところまで可動してしまう。
|
166
|
-
|
167
|
-
円弧の計算の仕組みが難しいため、わかるまで苦戦中です。
|
168
|
-
|
169
|
-
おそらく「CGFloat.pi/180」の角度の設定に問題がある。ここら辺の動作に関する円弧の仕組みがわかれば、
|
170
|
-
|
171
|
-
反転させた円弧でもうまく動くと考えている。
|
172
|
-
|
173
|
-
![イメージ説明](af9533215f0ce97d3f566642f324590c.png)
|
174
162
|
|
175
163
|
|
176
164
|
|
17
修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -264,6 +264,8 @@
|
|
264
264
|
|
265
265
|
let rotation = rotationForLocation(touch.location(in: self))
|
266
266
|
|
267
|
+
・・・続く
|
268
|
+
|
267
269
|
```
|
268
270
|
|
269
271
|
|
@@ -292,6 +294,8 @@
|
|
292
294
|
|
293
295
|
```ここに言語を入力
|
294
296
|
|
297
|
+
・・・続き
|
298
|
+
|
295
299
|
// convert rad to angles
|
296
300
|
|
297
301
|
var realRotationAngle = -(rotation * 180 / CGFloat(Double.pi))
|
16
修正
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
Swift4 円弧状のスライダーのつまみの動き(時計回り)と角度を反転させたい
|
test
CHANGED
File without changes
|
15
修正
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
Swift4 円弧状のスライダーのつまみの動き(時計回り)と角度を反転させたい
|
1
|
+
sゆうsSwift4 円弧状のスライダーのつまみの動き(時計回り)と角度を反転させたい
|
test
CHANGED
@@ -240,7 +240,7 @@
|
|
240
240
|
|
241
241
|
**8/23 15:40
|
242
242
|
|
243
|
-
質問:やはり上のコード部分(func updateRotationWithTouches)の仕組みが理解できません。
|
243
|
+
質問:やはり上のコード部分(func updateRotationWithTouches)の仕組みが理解できません。**
|
244
244
|
|
245
245
|
以下の部分ではmaxとminがあるのでここで、始点と終点の可動する制限を設定しているのでしょうか?
|
246
246
|
|
14
追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -252,7 +252,7 @@
|
|
252
252
|
|
253
253
|
```
|
254
254
|
|
255
|
-
**8/24**
|
255
|
+
**8/24**
|
256
256
|
|
257
257
|
```ここに言語を入力
|
258
258
|
|
@@ -268,19 +268,25 @@
|
|
268
268
|
|
269
269
|
|
270
270
|
|
271
|
-
> 引数:touch.location(in: self)
|
271
|
+
> 上のコードの引数:**rotationForLocation**(touch.location(in: self))について
|
272
|
+
|
273
|
+
```ここに言語を入力
|
272
274
|
|
273
275
|
fileprivate func rotationForLocation(_ location: CGPoint) -> CGFloat {
|
274
276
|
|
275
|
-
|
277
|
+
タッチした部分のX座標の半分とy座標の半分をoffsetとして
|
276
|
-
|
278
|
+
|
277
|
-
|
279
|
+
let offset = CGPoint(x: location.x - bounds.midX, y: location.y - bounds.midY)
|
278
|
-
|
280
|
+
|
279
|
-
|
281
|
+
その座標を返す?
|
280
|
-
|
282
|
+
|
281
|
-
|
283
|
+
return atan2(offset.y, offset.x)
|
282
|
-
|
284
|
+
|
283
|
-
|
285
|
+
}
|
286
|
+
|
287
|
+
```
|
288
|
+
|
289
|
+
|
284
290
|
|
285
291
|
|
286
292
|
|
13
追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -78,7 +78,81 @@
|
|
78
78
|
|
79
79
|
swift3で書かれた[github](https://github.com/ispiropoulos/PRGRoundSlider)を参考にしております。
|
80
80
|
|
81
|
+
文字数の制限で全て載せられないのですが、メインのファイルは以下です。
|
82
|
+
|
83
|
+
```ViewController
|
84
|
+
|
85
|
+
import UIKit
|
86
|
+
|
87
|
+
|
88
|
+
|
89
|
+
class ViewController: UIViewController {
|
90
|
+
|
91
|
+
|
92
|
+
|
93
|
+
@IBOutlet weak var sliderView: PRGRoundRangeSlider!
|
94
|
+
|
95
|
+
//今回扱っているスライダー
|
96
|
+
|
97
|
+
@IBOutlet weak var sliderContainerView: UIView!
|
98
|
+
|
99
|
+
|
100
|
+
|
101
|
+
override func viewDidLoad() {
|
102
|
+
|
103
|
+
super.viewDidLoad()
|
104
|
+
|
105
|
+
〜省略〜
|
106
|
+
|
107
|
+
DispatchQueue.main.async {
|
108
|
+
|
109
|
+
self.setupSliderProgrammatically()
|
110
|
+
|
111
|
+
}
|
112
|
+
|
113
|
+
}
|
114
|
+
|
115
|
+
|
116
|
+
|
117
|
+
func setupSliderProgrammatically(){
|
118
|
+
|
119
|
+
|
120
|
+
|
121
|
+
let sliderView = PRGRoundSlider(
|
122
|
+
|
123
|
+
frame: sliderContainerView.bounds,
|
124
|
+
|
81
|
-
|
125
|
+
value: 0.5,
|
126
|
+
|
127
|
+
strokeColor: SliderKit.darkBlueColor, //SliderKit
|
128
|
+
|
129
|
+
strokeWidth: 5,
|
130
|
+
|
131
|
+
gradientColor: SliderKit.darkPinkColor, //SliderKit
|
132
|
+
|
133
|
+
startAngle: 130,// 210,
|
134
|
+
|
135
|
+
endAngle: 50, //-30,
|
136
|
+
|
137
|
+
startText: "0%",
|
138
|
+
|
139
|
+
endText: "100%"
|
140
|
+
|
141
|
+
) //クロージャー
|
142
|
+
|
143
|
+
{ (value) in
|
144
|
+
|
145
|
+
return "(Int(value*100))%" //0.5→50%にしてreturn
|
146
|
+
|
147
|
+
}
|
148
|
+
|
149
|
+
sliderContainerView.addSubview(sliderView)
|
150
|
+
|
151
|
+
}
|
152
|
+
|
153
|
+
}
|
154
|
+
|
155
|
+
```
|
82
156
|
|
83
157
|
|
84
158
|
|
12
修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -177,3 +177,69 @@
|
|
177
177
|
value = prg <= 0.5 ? max(0,prg) : min(1,prg)
|
178
178
|
|
179
179
|
```
|
180
|
+
|
181
|
+
**8/24**
|
182
|
+
|
183
|
+
```ここに言語を入力
|
184
|
+
|
185
|
+
タッチした回数が初回だった場合
|
186
|
+
|
187
|
+
if let touch = touches[touches.startIndex] as? UITouch {
|
188
|
+
|
189
|
+
rotationにrotationForLocationの座標を渡す
|
190
|
+
|
191
|
+
let rotation = rotationForLocation(touch.location(in: self))
|
192
|
+
|
193
|
+
```
|
194
|
+
|
195
|
+
|
196
|
+
|
197
|
+
> 引数:touch.location(in: self)
|
198
|
+
|
199
|
+
fileprivate func rotationForLocation(_ location: CGPoint) -> CGFloat {
|
200
|
+
|
201
|
+
タッチした部分のX座標の半分とy座標の半分をoffsetとして
|
202
|
+
|
203
|
+
> let offset = CGPoint(x: location.x - bounds.midX, y: location.y - bounds.midY)
|
204
|
+
|
205
|
+
その座標を返す?
|
206
|
+
|
207
|
+
> return atan2(offset.y, offset.x)
|
208
|
+
|
209
|
+
}
|
210
|
+
|
211
|
+
|
212
|
+
|
213
|
+
```ここに言語を入力
|
214
|
+
|
215
|
+
// convert rad to angles
|
216
|
+
|
217
|
+
var realRotationAngle = -(rotation * 180 / CGFloat(Double.pi))
|
218
|
+
|
219
|
+
|
220
|
+
|
221
|
+
// We need to convert the rotation angle into paintcode oval angle
|
222
|
+
|
223
|
+
両オペランド(両辺)がtrueだったとき
|
224
|
+
|
225
|
+
|
226
|
+
|
227
|
+
if realRotationAngle > -180 && realRotationAngle < -90 {
|
228
|
+
|
229
|
+
|
230
|
+
|
231
|
+
realRotationAngle = 180 + (180+realRotationAngle) //180
|
232
|
+
|
233
|
+
}
|
234
|
+
|
235
|
+
|
236
|
+
|
237
|
+
let prg = (realRotationAngle - startAngle) / (-1 * (startAngle + abs(endAngle)))
|
238
|
+
|
239
|
+
|
240
|
+
|
241
|
+
value = prg <= 0.5 ? max(0,prg) : min(1,prg)
|
242
|
+
|
243
|
+
}
|
244
|
+
|
245
|
+
```
|
11
質問
test
CHANGED
File without changes
|
test
CHANGED
@@ -167,3 +167,13 @@
|
|
167
167
|
**8/23 15:40
|
168
168
|
|
169
169
|
質問:やはり上のコード部分(func updateRotationWithTouches)の仕組みが理解できません。ここの部分だけでもどなたか回答貰えると助かります。**
|
170
|
+
|
171
|
+
以下の部分ではmaxとminがあるのでここで、始点と終点の可動する制限を設定しているのでしょうか?
|
172
|
+
|
173
|
+
```ここに言語を入力
|
174
|
+
|
175
|
+
let prg = (realRotationAngle - startAngle)/(-1 * (startAngle + abs(endAngle)))
|
176
|
+
|
177
|
+
value = prg <= 0.5 ? max(0,prg) : min(1,prg)
|
178
|
+
|
179
|
+
```
|
10
修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -166,4 +166,4 @@
|
|
166
166
|
|
167
167
|
**8/23 15:40
|
168
168
|
|
169
|
-
質問:やはり上のコード部分の仕組みが理解できません。ここの部分だけでもどなたか回答貰えると助かります。**
|
169
|
+
質問:やはり上のコード部分(func updateRotationWithTouches)の仕組みが理解できません。ここの部分だけでもどなたか回答貰えると助かります。**
|
9
修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -164,4 +164,6 @@
|
|
164
164
|
|
165
165
|
```
|
166
166
|
|
167
|
+
**8/23 15:40
|
168
|
+
|
167
|
-
|
169
|
+
質問:やはり上のコード部分の仕組みが理解できません。ここの部分だけでもどなたか回答貰えると助かります。**
|
8
追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -163,3 +163,5 @@
|
|
163
163
|
}
|
164
164
|
|
165
165
|
```
|
166
|
+
|
167
|
+
**8/23 15:40 質問:やはり上のコード部分の仕組みが理解できません。ここの部分だけでもどなたか回答貰えると助かります。**
|
7
追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -97,3 +97,69 @@
|
|
97
97
|
反転させた円弧でもうまく動くと考えている。
|
98
98
|
|
99
99
|
![イメージ説明](af9533215f0ce97d3f566642f324590c.png)
|
100
|
+
|
101
|
+
|
102
|
+
|
103
|
+
**追記:8/23 12:00**
|
104
|
+
|
105
|
+
スライダーの動きの範囲に関しては、PRGRounderSlider.swiftのここの部分で変更できる可能性があるのでどうやって動いているかじっくり試行錯誤で変更を試している状況です。
|
106
|
+
|
107
|
+
```PRGRounderSlider
|
108
|
+
|
109
|
+
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
|
110
|
+
|
111
|
+
super.touchesBegan(touches, with: event)
|
112
|
+
|
113
|
+
updateRotationWithTouches(touches)
|
114
|
+
|
115
|
+
|
116
|
+
|
117
|
+
}
|
118
|
+
|
119
|
+
|
120
|
+
|
121
|
+
override func touchesMoved(_ touches: Set<UITouch>, with event: UIEvent?) {
|
122
|
+
|
123
|
+
super.touchesMoved(touches, with: event)
|
124
|
+
|
125
|
+
updateRotationWithTouches(touches)
|
126
|
+
|
127
|
+
}
|
128
|
+
|
129
|
+
|
130
|
+
|
131
|
+
func updateRotationWithTouches(_ touches: Set<NSObject>) {
|
132
|
+
|
133
|
+
if let touch = touches[touches.startIndex] as? UITouch {
|
134
|
+
|
135
|
+
let rotation = rotationForLocation(touch.location(in: self))
|
136
|
+
|
137
|
+
|
138
|
+
|
139
|
+
// convert rad to angles
|
140
|
+
|
141
|
+
var realRotationAngle = -(rotation * 180 / CGFloat(Double.pi)) //M_PI
|
142
|
+
|
143
|
+
|
144
|
+
|
145
|
+
|
146
|
+
|
147
|
+
// We need to convert the rotation angle into paintcode oval angle
|
148
|
+
|
149
|
+
if realRotationAngle > -180 && realRotationAngle < -90 {
|
150
|
+
|
151
|
+
realRotationAngle = 180 + (180+realRotationAngle)
|
152
|
+
|
153
|
+
}
|
154
|
+
|
155
|
+
|
156
|
+
|
157
|
+
let prg = (realRotationAngle - startAngle)/(-1 * (startAngle + abs(endAngle)))
|
158
|
+
|
159
|
+
value = prg <= 0.5 ? max(0,prg) : min(1,prg)
|
160
|
+
|
161
|
+
}
|
162
|
+
|
163
|
+
}
|
164
|
+
|
165
|
+
```
|
6
修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,8 +1,8 @@
|
|
1
|
-
**以下の青い「Single Slider」
|
1
|
+
**以下の青い「Single Slider」を「左下と右下に位置する始点(0%)と終点(100%)」を、「始点(0%)を左上、終点(100%)を右上」に設置し、スライダーのつまみを真ん中の円の下側を潜るように反時計回りに半周して終わるように変更を加えたい。(そっくりそのまま逆さまの状態に)**
|
2
2
|
|
3
3
|
|
4
4
|
|
5
|
-
![
|
5
|
+
![イメージ説明](b6b0cdd595b97faa1c65f045ebdfa23e.gif)
|
6
6
|
|
7
7
|
|
8
8
|
|
5
修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -84,15 +84,11 @@
|
|
84
84
|
|
85
85
|
**追記(現状):8/22 23:00**
|
86
86
|
|
87
|
-
始点と終点をstartAngleとendAngleを210/-30から130と50に変更することで、左上と右上に移動させて円弧の描写をclockwise: falseで反転させることに成功。そこから先のスライダーの動きに関して
|
87
|
+
始点と終点をstartAngleとendAngleを210/-30から130と50に変更することで、左上と右上に移動させて円弧の描写をclockwise: falseで反転させることに成功。そこから先のスライダーの動きに関してどうやったら反時計回りでかつ0%から100%に辿り着けるようになるかまだ、解決策を考えている。
|
88
88
|
|
89
89
|
![![イメージ説明](1bbfed7da0fe42b880c56aad492e1844.gif)
|
90
90
|
|
91
|
-
動きに関しては以下のように0%からはうまく始まるが、
|
92
|
-
|
93
|
-
![イメージ説明]
|
94
|
-
|
95
|
-
スライダーのつまみが100%の終点を超えて180度近く、先のところまで可動してしまう。
|
91
|
+
動きに関しては0%からはうまく始まるが、スライダーのつまみが100%の終点を超えて180度近く、先のところまで可動してしまう。
|
96
92
|
|
97
93
|
円弧の計算の仕組みが難しいため、わかるまで苦戦中です。
|
98
94
|
|
4
追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -86,11 +86,11 @@
|
|
86
86
|
|
87
87
|
始点と終点をstartAngleとendAngleを210/-30から130と50に変更することで、左上と右上に移動させて円弧の描写をclockwise: falseで反転させることに成功。そこから先のスライダーの動きに関してはまだ、解決策を考えている。
|
88
88
|
|
89
|
-
![イメージ説明](
|
89
|
+
![![イメージ説明](1bbfed7da0fe42b880c56aad492e1844.gif)
|
90
90
|
|
91
91
|
動きに関しては以下のように0%からはうまく始まるが、
|
92
92
|
|
93
|
-
![イメージ説明]
|
93
|
+
![イメージ説明]
|
94
94
|
|
95
95
|
スライダーのつまみが100%の終点を超えて180度近く、先のところまで可動してしまう。
|
96
96
|
|
3
追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -82,4 +82,22 @@
|
|
82
82
|
|
83
83
|
|
84
84
|
|
85
|
+
**追記(現状):8/22 23:00**
|
86
|
+
|
87
|
+
始点と終点をstartAngleとendAngleを210/-30から130と50に変更することで、左上と右上に移動させて円弧の描写をclockwise: falseで反転させることに成功。そこから先のスライダーの動きに関してはまだ、解決策を考えている。
|
88
|
+
|
89
|
+
![イメージ説明](5836c8960f4ce138d98a5f5dd048fa2f.png)
|
90
|
+
|
91
|
+
動きに関しては以下のように0%からはうまく始まるが、
|
92
|
+
|
93
|
+
![イメージ説明](559a281ba1994d50d7f8dcf328f10a2e.png)
|
94
|
+
|
95
|
+
スライダーのつまみが100%の終点を超えて180度近く、先のところまで可動してしまう。
|
96
|
+
|
97
|
+
円弧の計算の仕組みが難しいため、わかるまで苦戦中です。
|
98
|
+
|
99
|
+
おそらく「CGFloat.pi/180」の角度の設定に問題がある。ここら辺の動作に関する円弧の仕組みがわかれば、
|
100
|
+
|
85
|
-
|
101
|
+
反転させた円弧でもうまく動くと考えている。
|
102
|
+
|
103
|
+
![イメージ説明](af9533215f0ce97d3f566642f324590c.png)
|
2
修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -3,6 +3,12 @@
|
|
3
3
|
|
4
4
|
|
5
5
|
![![イメージ説明](46111fc6fef3a57b08a17dea5076f027.gif)
|
6
|
+
|
7
|
+
|
8
|
+
|
9
|
+
**やりたいことのイメージ**
|
10
|
+
|
11
|
+
![イメージ説明](4eecd0bc7c1141975705c2a8eef2046a.jpeg)
|
6
12
|
|
7
13
|
|
8
14
|
|
1
修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -50,9 +50,9 @@
|
|
50
50
|
|
51
51
|
context.translateBy(x: 45, y: 46) //45
|
52
52
|
|
53
|
-
//
|
53
|
+
// 回転する
|
54
54
|
|
55
|
-
context.rotate(by: -selectionAngle * CGFloat.pi/180) //
|
55
|
+
context.rotate(by: -selectionAngle * CGFloat.pi/180) //
|
56
56
|
|
57
57
|
|
58
58
|
|