// SpokesInCircle Example // Source code file: MainActivity.kt // Draw a circle with spokes connecting // its center to its perimeter. package it372.ssmith.spokesincircle import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.activity.enableEdgeToEdge import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.padding import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.foundation.Canvas import androidx.compose.foundation.background import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.size import androidx.compose.material3.CheckboxDefaults.StrokeWidth import androidx.compose.ui.geometry.Offset import androidx.compose.ui.geometry.Size import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.drawscope.Stroke import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) enableEdgeToEdge() setContent { MainLayout() } } } @Composable fun MainLayout( ) { Column( modifier = Modifier.padding(20.dp) .fillMaxSize( )) { Canvas( modifier = Modifier .padding(20.dp) .size(300.dp, 300.dp) .background(Color(0xFFC0C0C0)) .fillMaxSize( )) { drawCircle(color = Color.Black, radius = 350f, center = Offset(x=360f, y=360f), style = Stroke(width = 5f) ) // Draw spokes for(index in 0..19) { var angle = 2 * index * Math.PI / 20 drawLine(color = Color.Black, start = Offset(360f, 360f), end = Offset( 360f + 350f * Math.cos(angle).toFloat( ), 360f + 350f * Math.sin(angle).toFloat( ) ), strokeWidth = 5f) } } } } @Preview(showBackground = true) @Composable fun GreetingPreview() { MainLayout( ) }