I know the command Circle can do that too, however, I want to be more flexible later on and want to know how to define this with the above mentioned functions. Thanks in advance!
Asked
Active
Viewed 624 times
2
Kay
- 1,035
- 7
- 19
1 Answers
5
This will give a quarter of a circle,
Graphics[BSplineCurve[{{1, 0}, {1, 1}, {0, 1}},
SplineWeights -> {1, Sqrt[2]/2, 1},
SplineKnots -> {0, 0, 0, 1, 1, 2}]
]
and this gives the whole circle,
Graphics[BSplineCurve[{{1, 0}, {1, 1}, {0, 1}, {-1, 1}, {-1,
0}, {-1, -1}, {0, -1}, {1, -1}, {1, 0}},
SplineWeights -> {1, Sqrt[2]/2, 1, Sqrt[2]/2, 1, Sqrt[2]/2, 1,
Sqrt[2]/2, 1},
SplineKnots -> {0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 4}]]
I got the info to make these from a combination of this page and this page. This page looks very useful for digging into the theory behind it all.
Jason B.
- 68,381
- 3
- 139
- 286


Graphics[{Black, Thickness[.1], CapForm["Round"], Circle[{0, 0}, ArmRadius + WireRadius, {0, -90 Degree}]}]If you only want one end to be round, you can make two halves, one of which hasCapForm["Butt"]. – Jens Mar 21 '16 at 20:48BezierCurveorBSplineCurve(as I imagine). However, I completly failed trying any solution on that basis. – Kay Mar 21 '16 at 21:00BSplineCurve. As far as I understoodBezierCurveis just able to approximate a quarter of a circle. whereBSplineCurvecan treat that exact. Is that true? – Kay Mar 22 '16 at 12:44