[Android] 사각형 그리기 (with Jetpack Compose)

uuranus·2024년 7월 7일
post-thumbnail

평행사변형

ParallelogramShape(
  skewed = 0.2f,
  modifier = Modifier.fillMaxSize()
)

그리기

Canvas(
	modifier = Modifier
) {

    val path = Path()

    val width = size.width
    val height = size.height

    val skewedWidth = skewed * width
    path.apply {
        moveTo(skewedWidth, 0f)

        lineTo(width, 0f)
        lineTo(width - skewedWidth, height)
        lineTo(0f, height)
        lineTo(skewedWidth, 0f)

        close()
    }

    drawPath(
        path = path,
        color = Color.Gray
    )
}

마름모

RhombusShape(
  modifier = Modifier.fillMaxSize()
)

그리기

Canvas(
	modifier = Modifier
) {

    val path = Path()

    val width = size.width
    val height = size.height

    val centerX = width / 2
    val centerY = height / 2

    path.apply {
        moveTo(centerX, 0f)

        lineTo(width, centerY)
        lineTo(centerX, height)
        lineTo(0f, centerY)
        lineTo(centerX, 0f)

        close()
    }

    drawPath(
        path = path,
        color = Color.Gray
    )
}

사다리꼴

TrapezoidShape(
  leftSkewed = 0.2f,
  rightSkewed = 0.2f,
  modifier = Modifier.fillMaxSize()
)

그리기

Canvas(
	modifier = Modifier
) {

    val path = Path()

    val width = size.width
    val height = size.height

    val leftSkewedWidth = width * leftSkewed
    val rightSkewedWidth = width * rightSkewed

    path.apply {
        moveTo(leftSkewedWidth, 0f)

        lineTo(width - rightSkewedWidth, 0f)
        lineTo(width, height)
        lineTo(0f, height)
        lineTo(leftSkewedWidth, 0f)

        close()
    }

    drawPath(
        path = path,
        color = Color.Gray
    )
}
profile
Frontend Developer

0개의 댓글