Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
55
Task/Polyspiral/Scala/polyspiral.scala
Normal file
55
Task/Polyspiral/Scala/polyspiral.scala
Normal file
|
|
@ -0,0 +1,55 @@
|
|||
import java.awt._
|
||||
import java.awt.event.ActionEvent
|
||||
|
||||
import javax.swing._
|
||||
|
||||
object PolySpiral extends App {
|
||||
|
||||
SwingUtilities.invokeLater(() =>
|
||||
new JFrame("PolySpiral") {
|
||||
|
||||
class PolySpiral extends JPanel {
|
||||
private var inc = 0.0
|
||||
|
||||
override def paintComponent(gg: Graphics): Unit = {
|
||||
val g = gg.asInstanceOf[Graphics2D]
|
||||
def drawSpiral(g: Graphics2D, l: Int, angleIncrement: Double): Unit = {
|
||||
var len = l
|
||||
var (x1, y1) = (getWidth / 2d, getHeight / 2d)
|
||||
var angle = angleIncrement
|
||||
for (i <- 0 until 150) {
|
||||
g.setColor(Color.getHSBColor(i / 150f, 1.0f, 1.0f))
|
||||
val x2 = x1 + math.cos(angle) * len
|
||||
val y2 = y1 - math.sin(angle) * len
|
||||
g.drawLine(x1.toInt, y1.toInt, x2.toInt, y2.toInt)
|
||||
x1 = x2
|
||||
y1 = y2
|
||||
len += 3
|
||||
angle = (angle + angleIncrement) % (math.Pi * 2)
|
||||
}
|
||||
}
|
||||
|
||||
super.paintComponent(gg)
|
||||
g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON)
|
||||
drawSpiral(g, 5, math.toRadians(inc))
|
||||
}
|
||||
|
||||
setBackground(Color.white)
|
||||
setPreferredSize(new Dimension(640, 640))
|
||||
|
||||
new Timer(40, (_: ActionEvent) => {
|
||||
inc = (inc + 0.05) % 360
|
||||
repaint()
|
||||
}).start()
|
||||
}
|
||||
|
||||
add(new PolySpiral, BorderLayout.CENTER)
|
||||
pack()
|
||||
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE)
|
||||
setLocationRelativeTo(null)
|
||||
setResizable(true)
|
||||
setVisible(true)
|
||||
}
|
||||
)
|
||||
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue