Koch curve: Difference between revisions
Content added Content deleted
(Created page with "Draw Koch curve. See details: [https://en.wikipedia.org/wiki/Koch_snowflake Koch curve] =={{header|Ring}}== <lang ring> # Project : Koch curve # Date : 2018/04/20 # Author...") |
No edit summary |
||
Line 1: | Line 1: | ||
{{draft task}} |
|||
Draw Koch curve. See details: [https://en.wikipedia.org/wiki/Koch_snowflake Koch curve] |
Draw Koch curve. See details: [https://en.wikipedia.org/wiki/Koch_snowflake Koch curve] |
||
Revision as of 10:48, 20 April 2018
Koch curve is a draft programming task. It is not yet considered ready to be promoted as a complete task, for reasons that should be found in its talk page.
Draw Koch curve. See details: Koch curve
Ring
<lang ring>
- Project : Koch curve
- Date : 2018/04/20
- Author : Gal Zsolt (~ CalmoSoft ~)
- Email : <calmosoft@gmail.com>
load "guilib.ring"
paint = null
new qapp
{ win1 = new qwidget() { setwindowtitle("Koch curve") setgeometry(100,100,500,600) label1 = new qlabel(win1) { setgeometry(10,10,400,400) settext("") } new qpushbutton(win1) { setgeometry(150,500,100,30) settext("draw") setclickevent("draw()") } show() } exec() }
func draw
p1 = new qpicture() color = new qcolor() { setrgb(0,0,255,255) } pen = new qpen() { setcolor(color) setwidth(1) } paint = new qpainter() { begin(p1) setpen(pen)
koch(100, 100, 400, 400, 4)
endpaint() } label1 { setpicture(p1) show() }
func koch x1, y1, x2, y2, it
angle = 60*3.14/180 x3 = (2*x1+x2)/3 y3 = (2*y1+y2)/3
x4 = (x1+2*x2)/3 y4 = (y1+2*y2)/3
x = x3 + (x4-x3)*cos(angle)+(y4-y3)*sin(angle) y = y3 - (x4-x3)*sin(angle)+(y4-y3)*cos(angle)
if (it > 0) koch(x1, y1, x3, y3, it-1) koch(x3, y3, x, y, it-1) koch(x, y, x4, y4, it-1) koch(x4, y4, x2, y2, it-1) else paint.drawline(x1, y1, x3, y3) paint.drawline(x3, y3, x, y) paint.drawline(x, y, x4, y4) paint.drawline(x4, y4, x2, y2) ok
</lang> Output image: