[HN Gopher] Circles do not exist
___________________________________________________________________
Circles do not exist
Author : ingve
Score : 128 points
Date : 2023-09-19 19:44 UTC (3 hours ago)
(HTM) web link (nibblestew.blogspot.com)
(TXT) w3m dump (nibblestew.blogspot.com)
| andy_threos_io wrote:
| Real world manufacturing machines (CNCs) are using G codes. Like
| most laser cutters and engraves, Ex. LaserGrbl software for laser
| machines.
|
| G codes in fact have command for arcs.
|
| G02 establishes a mode for clockwise circular arcs. G03
| establishes a mode for counter-clockwise circular arcs.
| retrocryptid wrote:
| I think the OP's concern was that they couldn't upload G-Code,
| they could only upload PDFs. And because PDFs don't encode
| circles, a mechanistic translation to G-Code can't convert it
| into a G-Code circle, only a curve that emulates a circle.
|
| So... you know... note to self... when designing a laser
| cutter, allow the user to upload G-Code.
| mindslight wrote:
| > _The only way to create a proper circle is to have a raster
| image like the one above._
|
| _facepalm_. A raster image can 't express a circle either - it's
| also just an approximation.
|
| Same thing with a printout, for that matter. Maybe you could
| claim some kind of radial plotter is a true circle, but even
| there we're talking about pigment being absorbed along individual
| paper fibers.
|
| In reality, all the mathematical shapes are just abstractions to
| be approximated.
| ars wrote:
| You completely missed his point. Pick a DPI, make a raster
| circle - it's accurate to the DPI you pick. Now use a Bezier to
| make that circle (and rasterize it to that DPI). It's not
| accurate to that DPI.
| NotYourLawyer wrote:
| >Furthermore, the human vision system is a bit weird and perfect
| circles look vertically elongated. You have to make them non-
| circular for people to consider them properly circular.
|
| Just like how cows don't look like cows on film![0]
|
| [0] https://www.youtube.com/watch?v=KbkNul4wQH0
| tantalor wrote:
| Time Cube's ineffable Truth. 'Cubeless Word' is not Truth.
| Word justifies all human evil. Time Cube is a test for
| Truth. Circle measure is slop bucket.
| Terr_ wrote:
| Tacking on another quote-for-amusement:
|
| > "This is why you're taking less field work? Because you're
| reading 'On Circles, Volume 12'?"
|
| > "I wrote it."
|
| > "Unsurprising."
|
| > "I have to rewrite it. All twelve volumes [...] our physics
| framework was completely wrong!"
|
| > "Even about, like, circles?"
|
| > Ikora turns to look Chalco in the eye. "Especially about
| circles."
|
| [0] https://www.ishtar-collective.net/entries/vesper-of-radius
| syspec wrote:
| > Furthermore, the human vision system is a bit weird and perfect
| circles look vertically elongated. You have to make them non-
| circular for people to consider them properly circular.
|
| Does any one have a link to a perfect circle, I'd love to see if
| it has the proposed effect on me.
| titzer wrote:
| Look at a coffee cup.
| kanzenryu2 wrote:
| That's just a circular argument
| neilk wrote:
| If you use the standard way to approximate a circle with Bezier
| curves, it will differ from a true circle by about 0.03%.
|
| The human eye is not capable of seeing the difference, and, as
| the OP mentioned, most people can't accurately eyeball a perfect
| circle anyway.
|
| This post shows the math behind that, and then shows that it
| could be made even better with a few different choices.
|
| https://spencermortensen.com/articles/bezier-circle/
|
| P.S. of course, a display intended for the human eye has much
| looser tolerances than a gear or wheel.
| robocat wrote:
| > most people can't accurately eyeball a perfect circle anyway.
|
| https://lessonstream.com/the-story-of-mr-os-circle/
| jprete wrote:
| I think the OP is really just frustrated with the idea that CAD
| will use PDF and, in that application, 0.03% deviation can be
| too much.
| klysm wrote:
| Using a PDF where 0.03% matters is insane no?
| anamexis wrote:
| Yes, that's the point.
|
| 1. PDF is to become a standard CAD interchange format.
|
| 2. Using PDF where 0.03% matters is insane.
|
| 3. If CAD requires 0.03% tolerance, then using PDF as a
| standard CAD interchange format is insane.
|
| I would imagine you generally want arbitrary precision for
| CAD.
| Nevermark wrote:
| Absolutely!
|
| I cannot imagine a CAD system that can't symbolically
| represent what is actually desired. The model and its
| spec should be one and the same.
|
| Approximations also open the door to different precision
| versions. Not helpful when different parts from different
| sources need to be consistent.
|
| Models that approximate/vary from the ideal spec, created
| intentionally to match manufacturing limitations, are ok.
| TheRealPomax wrote:
| if being off by 3 units on a 10,000 unit circle actually
| matters, you have stricter requirements than most industry
| bodies. If you're fabricating parts that have tolerances
| measured in _1 /10th of a thou_, the machines you use
| _absolutely_ don 't ask for PDF, they ingest proper control
| code.
| nine_k wrote:
| If a Bezier-based circles with four nodes are too rough, I
| suppose a circle with 16 or 24 or 128 nodes can be made smooth
| enough to exceed the laser cutter's margin of error.
|
| If you want to produce a highly regular circle in Inkscape,
| draw a polygon with many nodes (say, 24), convert it to path,
| then make all nodes smooth and symmetric.
| itishappy wrote:
| Like floating point errors, the representation can (in
| theory) be as precise as we like but that's not something
| most users are willing/able to adjust.
| raphlinus wrote:
| The actual formula is O(n^6) scaling, and for circles it's
| very easy to achieve that. So a circle divided into 16ths has
| 4096 times less error than one in quarters and one made of
| 1024 nodes is a (binary) billion times better.
|
| This is true for curve fitting of arbitrary curves, not just
| circles, though arbitrary curve fitting is a bit tricky (it
| requires solving quartic equations). I personally think you
| can take this as evidence that cubic Beziers are "good
| enough" for all practical tasks requiring curve
| representation, though for specific applications there might
| be other representations that work better.
| hwayne wrote:
| Or just use the ellipse (E) in Inkscape, set the start/end to
| 0, and hold down ctrl. Then inkscape will generate a
| `<circle>` svg element.
| Puts wrote:
| "The only primitives they have are straight line segments,
| rectangles and Bezier curves. The only way to create a proper
| circle is to have a raster image like the one above."
|
| Is this really an accurate conclusion? Just because there are no
| primitives for a circle - postscript is still a programming
| language so you can also plot a proper circle with trigonometry?
| masfuerte wrote:
| I was under the impression that the postscript in a pdf isn't a
| programming language. It is pre-executed so that only drawing
| primitives remain. But I could be wrong.
| Pxtl wrote:
| Also, I'd wager that you could get something closer to a circle
| with a naive bezier implementation than with a naive raster
| implementation, as long as you were willing to spend as much
| resources on storing curve nodes as you would on raster data. I
| mean, it's not like a rastered circle would make a good wheel
| either considering that technically every line on it is
| orthogonal.
| CharlesW wrote:
| > _Just because there are no primitives for a circle..._
|
| Is a 360deg arc not a circle? %!PS
| /newpath 100 100 50 0 360 arc stroke showpage
| Puts wrote:
| Yes, but as someone else commented the arc is internally
| based on bezier curves. How accurate thee circle would be by
| plotting is probably dependent on the trigonometric table
| built in to the postscript interpreter, but at least it would
| be mathematically possible to make an accurate circle where
| it's actually not even possible to express a perfect circle
| with bezier curves.
| retrocryptid wrote:
| In theory you could, when you were converting from PS to
| G-Code NOT emulate the arc with bezier curves, but convert
| them into g-code circles. This would likely cause the laser
| cutter to cut something that looked SLIGHTLY different than
| the rendered PDF. But anyone who's worked in the field long
| enough knows that WYSIWYG is a lie (albeit a very useful
| lie.)
| Puts wrote:
| Don't get me wrong. I'm not questioning the usefulness of
| beziers. I'm questioning the authors notion that
| postscript inherently is incapable of expressing accurate
| circles just because the language don't have built in
| primitives for them. :)
| edgarvaldes wrote:
| I very like this kind of blog posts: simple, clear, to the point.
| I don't need to summarize it myself, I dont need to wonder if the
| preamble, history, anecdata, midjourney pics and diagrams are
| really necessary to understand the main topic.
| codexb wrote:
| As someone who's spent a decent amount of time writing "output to
| pdf" routines, I would never in a million years choose pdf as an
| interchange format for anything at all.
| bee_rider wrote:
| Unfortunately PDF is, like, one of the most reassuring file
| formats.
|
| https://xkcd.com/1301/
|
| What would you put at the top?
|
| .PS is pretty fancy, although, just because it is probably
| saying "this is basically a PDF but from the olden days."
| swores wrote:
| That comic is about what file types people choose to put what
| types of information (e.g. PDFs don't often get used for
| memes, and gifs don't often get used for scientific research
| papers). It's not even trying to make a point about the
| quality of the file formats themselves.
|
| (I assume when you wrote "most reassuring" you were instead
| interpreting it as a comic about the file types' ability to
| accurately hold the information a user wants them to hold,
| because "reassuring" as pertains to the comic's actual
| meaning would be completely irrelevant to this topic of
| whether or not PDF makes a good interchange format.)
| rustyminnow wrote:
| Yeah but that chart is saved as a PNG which is like, pretty
| low on the scale. I don't think we can trust anything on
| there.
| notatoad wrote:
| i think that comic is from an earlier time when making PDFs
| was harder.
| b800h wrote:
| This surprisingly less philosophical than I was expecting. There
| is no such thing as a perfect circle, it's a platonic ideal and
| lives in the Nous.
| retrocryptid wrote:
| I think the point of Plato's endless yammering wasn't that they
| don't exist, but that you can't prove they exist and no one
| seems to have found one.
| goatlover wrote:
| I thought his point was that the forms are memories of the
| divine because the material world does not provide such
| forms. You leave the cave when you stop being dominated by
| your senses and use your reason to apprehend universals.
| NegativeLatency wrote:
| Especially if space is quantized
| Karellen wrote:
| Even if space isn't quantized, matter is.
| carlosjobim wrote:
| > There is no such thing as a perfect circle
|
| A spinning movement has to be a perfect circle, no?
| diogenes4 wrote:
| Depends on your definition of existence, i suppose, which greek
| ontology is notoriously bad at tackling.
| mcphage wrote:
| That laser cutter might take PDF files as input, but it certainly
| isn't the case with all laser cutters.
| TheRealPomax wrote:
| But did you know that one of the cases PDF is being considered
| (and, based on Internet rumors, is already being used) is as an
| interchange format for CAD drawings? Now it suddenly starts
| mattering.
|
| Not really? It's considered as _an_ interchange format, not as
| _the_ interchange format. If you have CAD /CAM work for parts
| that need precision machining measured in tenths or less, you're
| not using machines that accept PDF to begin with.
| hinkley wrote:
| For 3d printing.
|
| Lathes do circles all the time. But it would be difficult to
| rotate either the head or the bed around an arbitrary axis in
| order to print a proper circle.
| jstanley wrote:
| The article has nothing to do with 3d printing.
| [deleted]
| rolph wrote:
| https://www.physicsforums.com/threads/the-planck-circle-prob...
| jackmott42 wrote:
| If you play the game Quake 3 Arena, which was, I think, the first
| game to use bezier curves in 3d rendering, so that a column or
| arch could dynamically adjust how many polygons are used
| depending on view distance, the columns are visibly not round!
|
| Not something most people notice unless they are looking for it.
| retrocryptid wrote:
| But the OP mentioned it EXPLICITLY matters in his use case.
| Telling someone their use case doesn't matter is sort of a
| reddit thing to do.
| Sharlin wrote:
| And these days GPUs have programmable tessellation shaders so
| they can semi-automatically make up more geometry as needed.
|
| I remember the Q3A Beziers were advertised as if the game
| rendered actual Beziers (which would in principle be possible
| in software but not on hardware... of the day, anyway), rather
| than just doing dynamic LoD approximation with your bog-
| standard triangles!
| pfdietz wrote:
| I was expecting this to be another "They have played us for
| absolute fools" meme.
| susam wrote:
| The first programming language I learnt to program in was Logo,
| namely IBM/LCSI PC Logo. It too did not have any command to draw
| curves or circles. However, we were taught to draw a "circle"
| using code like this: REPEAT 360 [FD 1 RT 1]
|
| It is easy to realise that the above code does not attempt to
| draw a circle. These instructions specify a
| triacosiahexeacontagon instead. Indeed circles did not exist!
|
| Screenshot: https://susam.net/blog/fd-100.html#circles
| carrozo wrote:
| Not really related to the article but this reminded me of a
| beautiful quote I've had in my notes for many years:
|
| _" To travel a circle is to journey over the same ground time
| and time again. To travel a circle wisely is to journey over the
| same ground as it is for the first time. In this way, the
| ordinary becomes extraordinary, and the circle, a path to where
| you wish to be. And when you notice at last that the path has
| circled back into itself, you realize that where you wish to be
| is where you have already been ... and always were."_
| nick-of-time wrote:
| I recommend anyone who finds this topic interesting watch the
| video _The Continuity of Splines_. It 's a detailed discussion of
| how you derive Bezier and higher-order curves to serve your
| purposes.
|
| https://www.youtube.com/watch?v=jvPPXbo87ds
| wizofaus wrote:
| Doesn't PS have "arc"?
| fooofw wrote:
| I was curious, so I looked up arc in the PostScript Language
| Reference [1]. It contains the following (p. 530):
|
| > The arc is represented internally by one or more cubic Bezier
| curves (see curveto) approximating the required shape. This is
| done with sufficient accuracy to produce a faithful rendition
| of the required arc. However, a program that reads the
| constructed path using pathforall will encounter curveto
| segments where arcs were specified originally.
|
| [1] https://www.adobe.com/jp/print/postscript/pdfs/PLRM.pdf
| CharlesW wrote:
| > _The arc is represented internally by one or more cubic
| Bezier curves..._
|
| But that's a rendering implementation detail, no? Isn't the
| precision and accuracy of any digital or physical
| manifestation of a circle limited by implementation details
| and physics?
| fooofw wrote:
| Yes, I agree completely.
| Sharlin wrote:
| Yes, but as the article notes, there are applications where
| you need a circle way more precise than one approximated by
| just a few Bezier curves. Although you could argue that any
| finite precision can be achieved by simply using more
| Bezier curves.
| proto_codex wrote:
| fact: circles are actually squares that have successfully
| deceived you. You have been bested by a shape.
| GuB-42 wrote:
| That's a well known conspiracy theory that has been proven
| wrong long ago. You can't square the circle.
|
| Don't be so irrational.
| retrocryptid wrote:
| But squares are really just diamonds which have been squished a
| bit.
| hinkley wrote:
| So you're saying you don't have to square a circle because it
| already is?
| thfuran wrote:
| Well I have to say, that really freed up my weekend.
| johnnyworker wrote:
| Sorry for not just quoting the bit about the straight line not
| existing in nature, but I could not bring myself to reduce it all
| to just that. In 1952 I spoke of the
| civilization of make-believe, the one we must shake off, myself,
| the the first of all! I spoke of columns of gray men on the march
| toward sterility and self-destruction. The same year I
| used the term "transautomation" to show the way beyond the
| rationalism of technocrats toward a new creation in harmony with
| the laws of nature. In 1953 I realized that the straight
| line leads to the downfall of mankind. But the straight
| line has become an absolute tyranny. The straight line is
| something cowardly drawn with a rule, without thought or feeling;
| it is a line which does not exist in nature. And that the
| line is the rotten foundation of our doomed civilization.
| Even if there are certain places where it is recognized that this
| line is rapidly leading to perdition, its course continues to be
| plotted. The straight line is the only sterile line, the
| only line which does not suit man as the image of God.
| The straight line is the forbidden fruit. The straight
| line is the curse of our civilization. Any design
| undertaken with the straight line will be stillborn. Today we are
| witnessing the triumph of rationalist knowhow and yet, at the
| same time, we find ourselves confronted with emptiness. An
| aesthetic void, desert of uniformity, criminal sterility, loss of
| creative power. Even creativity is prefabricated.
| We have become impotent. We are no longer able to create. That is
| our real illiteracy.
|
| - Friedensreich Hundertwasser, "Mouldiness Manifesto: Against
| rationalism in architecture"
|
| https://www.sfu.ca/~andrewf/MOULDINESS_MANIFESTO.htm
| NegativeK wrote:
| > This is a laser cutter that takes its "print jobs" as a PDF
| file and uses its vector drawing commands to drive the cutting
| head. This means that it is impossible to use it to print a
| wheel. You'd need to attach the output to a lathe and sand it
| down to be round so it actually functions as a wheel rather than
| as a vibration source.
|
| Respectfully, I don't think you're limited by the PDF format if
| you're talking about a laser cutter. And... Circular motion
| doesn't spring forth naturally from gantry CNC laser cutters --
| they're rectilinear in design. It's circles not existing all the
| way down.
|
| Using it as a CAD format with inherent fundamental shapes missing
| seems kind of funny, though.
| itishappy wrote:
| Epilog claims (up to) 1200dpi resolution. Another comment
| mentioned the "standard bezier curve representation" is
| accurate to 0.03%. This means errors should start being
| observable with a circle as small as 3in. These are probably
| wildly optimistic assumptions, but it's still 10x smaller than
| the bed of their largest unit, and there's nothing to stop
| people from creating arcs of circles with radii even bigger
| than that!
| photonerd wrote:
| Observable is pushing it. Technically observable, sure, but
| ~1dpi misplaced is... unlikely to be noticeable.
|
| Plus, if that level of accuracy is required simply adding
| more nodes improves accuracy exponentially.
|
| Not least, the "standard" approximation really should be
| updated in software, as modern 4-node approximations are down
| to 0.005%, almost an order of magnitude better.
| ars wrote:
| If you are misplaced by 1dpi, then your "1200 dpi" is
| actually 600 dpi.
|
| If you got a machine that's accurate to 1200 dpi presumably
| you want 1200 dpi and not 600.
| itishappy wrote:
| Oh, I completely agree! "Observable" is pushing the limits
| of the word past absurdity. 1200dpi would put the
| resolution of the system at just twice the wavelength of
| their laser. I feel like that's about the limit of what's
| possible due to physics [citation needed]. I'm fairly
| confident their actual performance is less.
| Animats wrote:
| PDF for CAD is silly. The problem is that laser cutters tend to
| take 2D vector image data as input, rather than G-Code like real
| CNC machines. You can definitely express a circular path in
| G-Code, and you expect a milling machine to cut one accurate to
| the precision of the mechanical parts of the machine. But laser
| cutter software is to some extent derived from printer
| technology. You can raster scan a picture onto a surface with a
| laser cutter.
| mitthrowaway2 wrote:
| Agreed. PDF for CAD has its place, but its place is shop
| drawings read by humans, not as a machine interchange format.
| Many laser cutters will accept other vector formats, like DXF,
| which do have precise representation for circles.
| crote wrote:
| DXF seems to be reasonably common for laser cutters. It at
| least supports arcs!
|
| I don't think many laser cutters use raster scanning, though.
| That's going to leave some really nasty artifacts. You really
| want to cut continuous lines like, well, lines.
| Animats wrote:
| Laser engraving is usually raster scan, and most laser
| cutters can do both line cutting and raster scanning.
| waffletower wrote:
| I thought the article would go further and posit that Circles do
| not exist in reality as they are approximations of a mathematical
| ideal. But the author does present the raster image as a bonafide
| circle, rather than the approximation that it truly is -- more
| resolved than others or not. A zoomed in excerpt of the author's
| rasterized circle approximation clearly shows that scale is key
| in perception of reified ideals: https://ibb.co/P1KwLDm
| pkulak wrote:
| That statement is just one of a million in the "calculus does
| not exist" realm, and is not nearly as interesting as this
| article was.
| waffletower wrote:
| I don't think the statement attempted to invalidate the
| article, there are many gems inside, such as the idea that
| human perception elongates the vertical axis, etc.
| namru1620 wrote:
| You wouldn't happen to have a link handy about that
| vertical axis perception thing would you, I l'm super
| curious about it.
| A_D_E_P_T wrote:
| That's true in a sense, but you've got to go way down. At a
| fine enough level --- say, at the level of atoms --- all
| material things are granular, and circular or spherical things
| are built stepwise from material building blocks, as though
| from pixels. Thus even very "smooth" things are rough and
| granular.
|
| Further: There are no circular (2D) molecules; nature prefers
| hexagons and other polygons for that. Even the proton isn't
| perfectly spherical. Whether the electron and other subatomic
| particles are perfectly spherical cannot, as yet, be
| determined. (The electron seemingly has a diameter far below
| the Planck Length.)
|
| There are no very large circles or spheres, either. All
| astronomical bodies are somewhat flattened.
|
| So I dare say perfect circles and spheres do not really exist,
| save as idealized mathematical objects.
| diogenes4 wrote:
| Very aggressive claim for solely talking about bezier
| representation.
| accrual wrote:
| That's pretty interesting. I'll now be doubting every circle I
| walk by, questioning if it's even real or just some
| approximation.
| BillinghamJ wrote:
| Perfect shapes do not exist on a physical level, so they're all
| approximations
|
| https://factmyth.com/factoids/there-are-no-straight-lines-or...
| goatlover wrote:
| What about black holes? Do non-rotating ones create perfect
| spheres?
| nerdponx wrote:
| Circles also don't exist in the core geospatial data library
| GEOS. You have to approximate them with a polygon that has a
| lot of vertices.
| mbfg wrote:
| circles exist with NURBs, iirc. Now at some point you have to
| turn on individual pixels, so ....
| Sharlin wrote:
| Not if you use a vector display!
| choonway wrote:
| but until then, figuring out micron level tolerances over
| meters can be done with perfect circles using Non Uniform
| Rational B(Basis)-Splines.
| ks2048 wrote:
| Article says "Furthermore, the human vision system is a bit weird
| and perfect circles look vertically elongated. You have to make
| them non-circular for people to consider them properly circular."
|
| Anyone have a reference for this?
___________________________________________________________________
(page generated 2023-09-19 23:00 UTC)