I want to eliminate the dots of higher opacity that occur at the joints within a BSplineCurve of low opacity. Small rectangles of greater opacity, shown below, become small circles when CapForm["Round"] is set, confirming the cause as overlap of spline segments. BezierCurve does not show these changes in opacity; however, the frequent sharp corners of a BezierCurve do not work for my application.

Block[{p}, SeedRandom[1729];
   p = RandomReal[{-1, 1}, {10, 2}];
   Graphics[{Thickness[0.05], Opacity[0.4], BSplineCurve[p]}]]

spline opacity artefact

I also tried a BSplineFunction of the points, f = BSplineFunction[p], then a Line between samples of the function, Line[Table[f[x],{x,0,1,0.005]]. The overlapped joints persist. Is there a way to cure these "measles"?


Code posted. Using the example in belisarius's comment gives the same curve as in his linked *.png, however the opacity dots persist. I am using version 10.3.0, 64 bit on Linux.


Wolfram support fixed the problem with the following setting,

SetOptions[$FrontEnd, PolylineGroupSize -> 250];

saying "This should produce the proper results at the expense of a little bit of speed. You can change the numeric value to meet your needs."

  • 2
    $\begingroup$ Please give us some sample code so we can help you. $\endgroup$ Nov 23 '15 at 17:42
  • 1
    $\begingroup$ Graphics[{Opacity[.3], Thickness[.08], BSplineCurve[ pts = {{0, 0}, {1, 1}, {2, -1}, {3, 0}, {4, -2}, {5, 1}, {1, 1}, {3, 3}}]}] results in i.stack.imgur.com/lrcPW.png (Mma v9) Please post your code $\endgroup$ Nov 23 '15 at 18:01
  • $\begingroup$ Looks fine with v10.0.1, Win7, 64 bit. $\endgroup$
    – paw
    Nov 23 '15 at 19:06
  • $\begingroup$ Looks like a "new version" bug then. Could someone confirm with 10.3 and add the "bugs" tag? $\endgroup$ Nov 23 '15 at 19:26
  • 1
    $\begingroup$ No problem with 10.3 on Windows 10 $\endgroup$ Nov 23 '15 at 20:19

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.