fix(live-room): Path로 그리는 하트 모양 보정
This commit is contained in:
@@ -2416,18 +2416,19 @@ class LiveRoomActivity : BaseActivity<ActivityLiveRoomBinding>(ActivityLiveRoomB
|
||||
}
|
||||
|
||||
private val baseHeartPath: Path = Path().apply {
|
||||
// 하트 경로(정규화 좌표계 [-1,1])
|
||||
// Swift HeartShape와 동일한 하트 경로 (정규화 좌표 [-1,1]에 0.9 스케일 반영)
|
||||
reset()
|
||||
moveTo(0f, -0.2f)
|
||||
val S = 0.9f
|
||||
moveTo(0f, -0.45f * S)
|
||||
cubicTo(
|
||||
0.85f, -1.0f,
|
||||
1.35f, 0.2f,
|
||||
0f, 1f
|
||||
0.62f * S, -1.02f * S,
|
||||
1.22f * S, -0.04f * S,
|
||||
0f, 0.65f * S
|
||||
)
|
||||
cubicTo(
|
||||
-1.35f, 0.2f,
|
||||
-0.85f, -1.0f,
|
||||
0f, -0.2f
|
||||
-1.22f * S, -0.04f * S,
|
||||
-0.62f * S, -1.02f * S,
|
||||
0f, -0.45f * S
|
||||
)
|
||||
close()
|
||||
}
|
||||
@@ -2604,22 +2605,19 @@ class LiveRoomActivity : BaseActivity<ActivityLiveRoomBinding>(ActivityLiveRoomB
|
||||
|
||||
private val particles = mutableListOf<Particle>()
|
||||
private val baseHeartPath: Path = Path().apply {
|
||||
// 하트 실루엣(정규화 좌표: x,y ∈ [-1,1])
|
||||
// 상단 중앙 노치가 있고 좌우 로브가 둥글며 하단 포인트가 뾰족한 형태
|
||||
// y 범위 [-1, 1] 유지(halfSize 기반 착지/충돌 판정과 정합)
|
||||
// Swift HeartShape와 동일한 하트 경로 (정규화 좌표 [-1,1]에 0.9 스케일 반영)
|
||||
reset()
|
||||
moveTo(0f, -0.2f) // top notch
|
||||
// right lobe → bottom tip
|
||||
val S = 0.9f
|
||||
moveTo(0f, -0.45f * S)
|
||||
cubicTo(
|
||||
0.85f, -1.0f, // control1: right lobe top
|
||||
1.35f, 0.2f, // control2: right shoulder
|
||||
0f, 1f // bottom tip
|
||||
0.62f * S, -1.02f * S,
|
||||
1.22f * S, -0.04f * S,
|
||||
0f, 0.65f * S
|
||||
)
|
||||
// left lobe → back to notch
|
||||
cubicTo(
|
||||
-1.35f, 0.2f, // control1: left shoulder
|
||||
-0.85f, -1.0f, // control2: left lobe top
|
||||
0f, -0.2f // notch
|
||||
-1.22f * S, -0.04f * S,
|
||||
-0.62f * S, -1.02f * S,
|
||||
0f, -0.45f * S
|
||||
)
|
||||
close()
|
||||
}
|
||||
@@ -2722,22 +2720,19 @@ class LiveRoomActivity : BaseActivity<ActivityLiveRoomBinding>(ActivityLiveRoomB
|
||||
|
||||
private val drops = mutableListOf<Drop>()
|
||||
private val baseHeartPath: Path = Path().apply {
|
||||
// 하트 실루엣(정규화 좌표: x,y ∈ [-1,1])
|
||||
// 상단 중앙 노치가 있고 좌우 로브가 둥글며 하단 포인트가 뾰족한 형태
|
||||
// y 범위 [-1, 1] 유지(halfSize 기반 착지/충돌 판정과 정합)
|
||||
// Swift HeartShape와 동일한 하트 경로 (정규화 좌표 [-1,1]에 0.9 스케일 반영)
|
||||
reset()
|
||||
moveTo(0f, -0.2f) // top notch
|
||||
// right lobe → bottom tip
|
||||
val S = 0.9f
|
||||
moveTo(0f, -0.45f * S)
|
||||
cubicTo(
|
||||
0.85f, -1.0f, // control1: right lobe top
|
||||
1.35f, 0.2f, // control2: right shoulder
|
||||
0f, 1f // bottom tip
|
||||
0.62f * S, -1.02f * S,
|
||||
1.22f * S, -0.04f * S,
|
||||
0f, 0.65f * S
|
||||
)
|
||||
// left lobe → back to notch
|
||||
cubicTo(
|
||||
-1.35f, 0.2f, // control1: left shoulder
|
||||
-0.85f, -1.0f, // control2: left lobe top
|
||||
0f, -0.2f // notch
|
||||
-1.22f * S, -0.04f * S,
|
||||
-0.62f * S, -1.02f * S,
|
||||
0f, -0.45f * S
|
||||
)
|
||||
close()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user