Download or view GeneralPathExample.frink in plain text format
// Demonstrates and tests drawing curves.
// This renders the images used in the documentation of GeneralPath.
drawCubicWithEndpoints[p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y] :=
{
g1 = new graphics
// Draw endpoints
g1.color[0,0,1]
g1.fillRectCenter[p1x,p1y, .2,.2]
g1.fillRectCenter[p2x,p2y, .2,.2]
// Draw control points
g1.color[.5,.5,.5]
g1.fillRectCenter[c1x,c1y,.2,.2]
g1.fillRectCenter[c2x,c2y,.2,.2]
// Draw control lines
g1.color[.7,.7,.7]
g1.line[p1x,p1y,c1x,c1y]
g1.line[p2x,p2y,c2x,c2y]
// Draw the cubic curve
g1.color[0,0,0]
gp = new GeneralPath
gp.moveTo[p1x,p1y]
gp.cubicCurve[c1x,c1y, c2x,c2y, p2x,p2y]
g1.add[gp]
// g1.font["SansSerif", "plain", 1]
// g1.text["Cubic B\u00e9zier curve", 5, -6]
g1.show[]
g1.write["cubic.svg",500,400]
g1.write["cubic.png",300,200]
g1.write["cubic.jpg",500,400]
// g1.print[]
}
// Quadratic curve example
drawQuadraticWithEndpoints[p1x, p1y, c1x, c1y, p2x, p2y] :=
{
g1 = new graphics
// Draw endpoints
g1.color[0,0,1]
g1.fillRectCenter[p1x,p1y, .2,.2]
g1.fillRectCenter[p2x,p2y, .2,.2]
// Draw control points
g1.color[.5,.5,.5]
g1.fillRectCenter[c1x,c1y,.2,.2]
// Draw control lines
g1.color[.7,.7,.7]
g1.line[p1x,p1y,c1x,c1y]
g1.line[p2x,p2y,c1x,c1y]
// Draw the cubic curve
g1.color[0,0,0]
gp = new GeneralPath
gp.moveTo[p1x,p1y]
gp.quadratic[c1x,c1y, p2x,p2y]
g1.add[gp]
// g1.font["SansSerif", "plain", 1]
// g1.text["Cubic B\u00e9zier curve", 5, -6]
g1.show[]
g1.write["quadratic.svg",500,400]
g1.write["quadratic.png",300,150]
g1.write["quadratic.jpg",500,400]
// g1.print[]
}
drawCubicWithEndpoints[0,0, 3,3, 6,-5, 10,1]
drawQuadraticWithEndpoints[0,0, 2,4, 10,1]
Download or view GeneralPathExample.frink in plain text format
This is a program written in the programming language Frink.
For more information, view the Frink
Documentation or see More Sample Frink Programs.
Alan Eliasen was born 20217 days, 15 hours, 46 minutes ago.