Pentagram: Difference between revisions

1,650 bytes added ,  5 years ago
Scala contribution added.
(Added Julia language)
(Scala contribution added.)
Line 816:
https://www.dropbox.com/s/znbcsoatlc00n4w/Pentagram.jpg?dl=0
 
=={{header|Scala}}==
===Java Swing Interoperability===
<lang Scala>import java.awt._
import java.awt.geom.Path2D
 
import javax.swing._
 
object Pentagram extends App {
 
SwingUtilities.invokeLater(() =>
new JFrame("Pentagram") {
 
class Pentagram extends JPanel {
setPreferredSize(new Dimension(640, 640))
setBackground(Color.white)
final private val degrees144 = Math.toRadians(144)
 
override def paintComponent(gg: Graphics): Unit = {
val g = gg.asInstanceOf[Graphics2D]
 
def drawPentagram(g: Graphics2D, x: Int, y: Int, fill: Color): Unit = {
var (_x, _y, angle) = (x, y, 0.0)
val p = new Path2D.Float
p.moveTo(_x, _y)
for (i <- 0 until 5) {
val (x2, y2) = (_x + (Math.cos(angle) * 500).toInt, _y + (Math.sin(-angle) * 500).toInt)
p.lineTo(x2, y2)
_x = x2
_y = y2
angle -= degrees144
}
p.closePath()
g.setColor(fill)
g.fill(p)
g.setColor(Color.darkGray)
g.draw(p)
}
 
super.paintComponent(gg)
g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON)
g.setStroke(new BasicStroke(5, BasicStroke.CAP_ROUND, BasicStroke.JOIN_MITER))
drawPentagram(g, 70, 250, new Color(0x6495ED))
}
}
 
add(new Pentagram, BorderLayout.CENTER)
pack()
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE)
setLocationRelativeTo(null)
setResizable(false)
setVisible(true)
}
)
 
}</lang>
=={{header|Sidef}}==
{{trans|Perl 6}}
Line 849 ⟶ 904:
say pentagram()</lang>
{{out}}
<pre><?xml version="1.0" standalone="no" ?>
<pre>
<?xml version="1.0" standalone="no" ?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"
"http://www.w3.org/TR/2001/PR-SVG-20010719/DTD/svg10.dtd">
Line 858 ⟶ 912:
style="fill:blue; stroke:white; stroke-width:3;"
transform="translate(200, 200) rotate(-18)" />
</svg></pre>
</pre>
 
=={{header|SPL}}==
Anonymous user