Rocksolid Light

Welcome to RetroBBS

mail  files  register  newsreader  groups  login

Message-ID:  

The Macintosh is Xerox technology at its best.


devel / comp.lang.postscript / ArcPrecise, an accurate arc

SubjectAuthor
* ArcPrecise, an accurate arcjdaw1
+* Re: ArcPrecise, an accurate arcjdaw1
|+- Re: ArcPrecise, an accurate arcDavid Newall
|`* Re: ArcPrecise, an accurate arcJohn Reiser
| +- Re: ArcPrecise, an accurate arcjdaw1
| `* Re: ArcPrecise, an accurate arcluser droog
|  `* Re: ArcPrecise, an accurate arcjdaw1
|   `* Re: ArcPrecise, an accurate arcjdaw1
|    `* Re: ArcPrecise, an accurate arcjdaw1
|     `* Re: ArcPrecise, an accurate arcPhil Wakely
|      `* Re: ArcPrecise, an accurate arcPhil Wakely
|       `* Re: ArcAccurate, an accurate arcjdaw1
|        `- Re: ArcAccurate, an accurate arcjdaw1
`- Re: ArcPrecise, an accurate arcjdaw1

1
ArcPrecise, an accurate arc

<a31725cf-9984-4c06-b541-bee4c215626cn@googlegroups.com>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=168&group=comp.lang.postscript#168

  copy link   Newsgroups: comp.lang.postscript
X-Received: by 2002:ac8:57d2:0:b0:31f:1f3:b3ec with SMTP id w18-20020ac857d2000000b0031f01f3b3ecmr2625372qta.214.1658260046537;
Tue, 19 Jul 2022 12:47:26 -0700 (PDT)
X-Received: by 2002:a9d:67d3:0:b0:61c:9eac:a96 with SMTP id
c19-20020a9d67d3000000b0061c9eac0a96mr5460845otn.135.1658260046199; Tue, 19
Jul 2022 12:47:26 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!feed1.usenet.blueworldhosting.com!peer02.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.postscript
Date: Tue, 19 Jul 2022 12:47:25 -0700 (PDT)
Injection-Info: google-groups.googlegroups.com; posting-host=185.176.160.84; posting-account=Cp97SgoAAAC0t1Gya5PaPqyoafMoOtAn
NNTP-Posting-Host: 185.176.160.84
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <a31725cf-9984-4c06-b541-bee4c215626cn@googlegroups.com>
Subject: ArcPrecise, an accurate arc
From: jdawiseman@gmail.com (jdaw1)
Injection-Date: Tue, 19 Jul 2022 19:47:26 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 6795
 by: jdaw1 - Tue, 19 Jul 2022 19:47 UTC

The PostScript command `arc` can draw circles, and part circles. Adobe Distiller draws angles ≤90° as a single Bézier cubic.

A Bézier cubic has eight parameters, `curveto` receiving the two from the `currentpoint`, and six from the stack. An arc must go through the correct endpoints, using four parameters. At the endpoints the direction of travel must be tangent to the circle, so each end absorbs another parameter. And, by symmetry, at the two ends the speeds of departure must be the same. ⟹︎ Only one parameter remains to be chosen, being the speed of departure from the endpoints.

For a 90° part of a unit circle, Adobe uses a speed of 0.552. Mathematica shows that the worst error happens at t ≈ 0.18864 (and at one minus this), an angle ≈ 17.39° (and 90° minus this) where the radius is too large by about 212 parts per million. At t = ½, angle = 45°, the radius is too small by −151 parts per million. These values are confirmed by testing with `flattenpath` … `pathforall`.

For a circle of radius 540pt = 7½″ = 190.5mm, plausible on A4 or 8½″×11″, the error is as large as 0.1145pt.

Typically, a ≈0.04mm error doesn’t matter: the eye would not perceive it midst an empty page. But if a circle is being drawn with `arc`, and things placed at its edge (locations computed with `sin` and `cos`), as my software http://github.com/jdaw1/placemat/ does, then these things could be falsely apart by 0.11pt. That isn’t a disaster, but could be a multi-pixel visible imperfection. And an unnecessary imperfection.

This is solved by new PostScript routines `ArcPrecise`, and à la `arcn`, `ArcPreciseN`.

http://www.jdawiseman.com/2022/ArcPrecise.ps
http://www.jdawiseman.com/2022/ArcPrecise.pdf
http://www.jdawiseman.com/2022/ArcPrecise_bitmap_17.png (Adobe error of +212 ppm)
http://www.jdawiseman.com/2022/ArcPrecise_bitmap_73.png (Adobe error of +212 ppm)
http://www.jdawiseman.com/2022/ArcPrecise_bitmap_45.png (Adobe error of −151 ppm)
http://www.jdawiseman.com/2022/ArcPrecise_bitmap_06.png (worst ArcPrecise error, +0.37 ppm)

Output is shown in the PDF and the .png extracts from it. The grey line, width 0.36pt, is a precise circle, made of tiny `lineto`s only ⅛° apart. Underneath is a red line, width 0.60pt, drawn with Adobe’s `arc`, the red diagonals touching its worst radii. On top is a blue line, width 0.12pt, drawn with `ArcPrecise`, short blue lines touching its worst points. The widths are chosen such that, where all are neatly aligned, each stripe of colour has width 0.12pt. Throughout, the grey and the blue are neatly aligned; but the red drifts out by almost 0.12pt, then in, then back out.

Assume curve of angle θ. A speed of Tan[θ/4]·4/3 has the radius precisely correct at the midpoint, t = ½, angle = θ/2. The radius is never too small, and is maximal at t = ½ − ⅙√3 ≈ 0.2113. For θ small and in radians, the maximal radius happens near angle (½ − ⅙√3)·θ ≈ 0.2113 θ, where the radius is too big by ≈ 2⁻¹¹·3⁻³·θ⁶ = (θ^6)/55296.

`ArcPrecise` chooses curves of no more than 30°. For a 30° curve the actual worst error is 0.372662 parts per million; this approximation says π⁶/2579890176 − 1 ≈ 0.372647 ppm. So it is a good approximation to the error.

For a 540pt radius, `ArcPrecise` has a peak error of 0.00020pt. If the smallest error we care about is 0.01pt, half a pixel at 3600d.p.i., that doesn’t happen with radius ≤ 9.46 metres ≈ 31 feet. This is bigger than the PDF standard’s maximum page size of only 200″ = 16⅔ feet = 5.08 metres. Further, PostScript’s arithmetic is single-precision, with a 23-bit mantissa, which is only slightly more accurate than 0.37 ppm. So 30° curves are sufficiently small.

There is also a little neatness in the choice of curve-end angles. If every multiple of 90° is a curve endpoint, then `pathbbox` returns the correct minimal box. So the angle choosing algorithm works as follows. It computes the next multiple of 90°, If that’s ≤30° away, done in one curve; else if ≤60° away, done in two equal-angle curves; otherwise split into three equal-angle curves. Then 30° curves until the final multiple of 90°; the final section, like the first, in at most three equal-angle curves each ≤30°. This means that: curves are all ≤30°; for a non-rotated frame `pathbbox` works optimally; and the number of curves is at most 1 + ⌈|ang₂ − ang₁| ÷ 30°⌉.

The build-in routines start with a line from a currentpoint, if there is one. This is annoying. Consider an annulus: there’s a line between the inner and outer circles, avoiding which requires a manual moveto. `ArcPrecise` and `ArcPreciseN` prevent this annoyance by starting, always, with a moveto, never a lineto.

Comment welcomed.

Re: ArcPrecise, an accurate arc

<62351448-10c4-45c7-a2b7-7d71ac7d03aan@googlegroups.com>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=169&group=comp.lang.postscript#169

  copy link   Newsgroups: comp.lang.postscript
X-Received: by 2002:a05:620a:44c3:b0:6b5:fb6b:d6c9 with SMTP id y3-20020a05620a44c300b006b5fb6bd6c9mr7329577qkp.537.1658341521960;
Wed, 20 Jul 2022 11:25:21 -0700 (PDT)
X-Received: by 2002:a05:6808:120f:b0:325:cef0:3f7 with SMTP id
a15-20020a056808120f00b00325cef003f7mr2942870oil.38.1658341521703; Wed, 20
Jul 2022 11:25:21 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!feed1.usenet.blueworldhosting.com!peer01.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.postscript
Date: Wed, 20 Jul 2022 11:25:21 -0700 (PDT)
In-Reply-To: <a31725cf-9984-4c06-b541-bee4c215626cn@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=185.176.160.84; posting-account=Cp97SgoAAAC0t1Gya5PaPqyoafMoOtAn
NNTP-Posting-Host: 185.176.160.84
References: <a31725cf-9984-4c06-b541-bee4c215626cn@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <62351448-10c4-45c7-a2b7-7d71ac7d03aan@googlegroups.com>
Subject: Re: ArcPrecise, an accurate arc
From: jdawiseman@gmail.com (jdaw1)
Injection-Date: Wed, 20 Jul 2022 18:25:21 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 1780
 by: jdaw1 - Wed, 20 Jul 2022 18:25 UTC

> The build-in routines start with a line from a currentpoint, if there is one. This is annoying. Consider an annulus: there’s a line between the inner and outer circles, avoiding which requires a manual moveto. `ArcPrecise` and `ArcPreciseN` prevent this annoyance by starting, always, with a moveto, never a lineto.

I think this is an error. What if the user wants a rounded rectangle. That isn’t possible if `ArcPrecise` starts with a `moveto`. Perhaps there could be an extra parameter, code, usually being one of {moveto}, {lineto}, {pop pop}. Advice welcomed.

Re: ArcPrecise, an accurate arc

<62d90e61$1@news.ausics.net>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=170&group=comp.lang.postscript#170

  copy link   Newsgroups: comp.lang.postscript
Date: Thu, 21 Jul 2022 18:29:21 +1000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
Thunderbird/91.11.0
Subject: Re: ArcPrecise, an accurate arc
Content-Language: en-US
Newsgroups: comp.lang.postscript
References: <a31725cf-9984-4c06-b541-bee4c215626cn@googlegroups.com>
<62351448-10c4-45c7-a2b7-7d71ac7d03aan@googlegroups.com>
From: davidn@davidnewall.com (David Newall)
In-Reply-To: <62351448-10c4-45c7-a2b7-7d71ac7d03aan@googlegroups.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
NNTP-Posting-Host: news.ausics.net
Message-ID: <62d90e61$1@news.ausics.net>
Organization: Ausics - https://www.ausics.net
Lines: 10
X-Complaints: abuse@ausics.net
Path: i2pn2.org!i2pn.org!news.bbs.nz!news.ausics.net!not-for-mail
 by: David Newall - Thu, 21 Jul 2022 08:29 UTC

On 21/7/22 04:25, jdaw1 wrote:
>> The build-in routines start with a line from a currentpoint, if there is one. This is annoying. Consider an annulus: there’s a line between the inner and outer circles, avoiding which requires a manual moveto. `ArcPrecise` and `ArcPreciseN` prevent this annoyance by starting, always, with a moveto, never a lineto.
>
> I think this is an error. What if the user wants a rounded rectangle. That isn’t possible if `ArcPrecise` starts with a `moveto`. Perhaps there could be an extra parameter, code, usually being one of {moveto}, {lineto}, {pop pop}. Advice welcomed.

Use PS arc: you (often) have to add moveto. Use ArcPrecise: you
(sometimes) have to add lineto. It seems unimportant.

OTOH, if the goal is to make a better arc, start with lineto instead of
moveto so programmers have no surprises when they use ArcPrecise.

Re: ArcPrecise, an accurate arc

<6fudnUECfJxtwkT_nZ2dnUU7_83NnZ2d@giganews.com>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=171&group=comp.lang.postscript#171

  copy link   Newsgroups: comp.lang.postscript
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!news.misty.com!border-2.nntp.ord.giganews.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!buffer2.nntp.dca1.giganews.com!buffer1.nntp.dca1.giganews.com!news.giganews.com.POSTED!not-for-mail
NNTP-Posting-Date: Thu, 21 Jul 2022 09:17:19 -0500
Date: Thu, 21 Jul 2022 07:17:19 -0700
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
Thunderbird/91.9.0
Subject: Re: ArcPrecise, an accurate arc
Content-Language: en-US
Newsgroups: comp.lang.postscript
References: <a31725cf-9984-4c06-b541-bee4c215626cn@googlegroups.com>
<62351448-10c4-45c7-a2b7-7d71ac7d03aan@googlegroups.com>
From: vendor@BitWagon.com (John Reiser)
In-Reply-To: <62351448-10c4-45c7-a2b7-7d71ac7d03aan@googlegroups.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Message-ID: <6fudnUECfJxtwkT_nZ2dnUU7_83NnZ2d@giganews.com>
Lines: 11
X-Usenet-Provider: http://www.giganews.com
X-Trace: sv3-m9iFECnblClakZg4IXKRrS1bE0TW/d8L2XuKIfKyELFFuy0vbMFawA7oWshpdYIRcllc7vRBF+NULRn!FBnm9btpY+wKjyd0bz6sC4xJrxobNRZ9QuoU1fUI+z4PFir7gT0MilsHCYE2omkW9hryUgk0uOr6
X-Complaints-To: abuse@giganews.com
X-DMCA-Notifications: http://www.giganews.com/info/dmca.html
X-Abuse-and-DMCA-Info: Please be sure to forward a copy of ALL headers
X-Abuse-and-DMCA-Info: Otherwise we will be unable to process your complaint properly
X-Postfilter: 1.3.40
X-Original-Bytes: 2335
 by: John Reiser - Thu, 21 Jul 2022 14:17 UTC

On 7/20/22 11:25, jdaw1 wrote:
>> The build-in routines start with a line from a currentpoint, if there is one. This is annoying. Consider an annulus: there’s a line between the inner and outer circles, avoiding which requires a manual moveto. `ArcPrecise` and `ArcPreciseN` prevent this annoyance by starting, always, with a moveto, never a lineto.
>
> I think this is an error. What if the user wants a rounded rectangle. That isn’t possible if `ArcPrecise` starts with a `moveto`. Perhaps there could be an extra parameter, code, usually being one of {moveto}, {lineto}, {pop pop}. Advice welcomed.

Advice: 'ArcPrecise' should have the same API as 'arc'. Why? When I see
an image that I want to improve by using ArcPrecise instead of arc, then
I want the *option* to interpose a global dictionary which defines 'arc'
as 'ArcPrecise', and have better arcs be the only change to the image.
I might not have access to the innards of the rest of the Postscript code;
it might not be possible to use a text editor to change all calls on "arc".

Re: ArcPrecise, an accurate arc

<06a35d75-fbcd-46f2-b6bf-99d277bf64d7n@googlegroups.com>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=172&group=comp.lang.postscript#172

  copy link   Newsgroups: comp.lang.postscript
X-Received: by 2002:a05:6214:1c83:b0:46b:a79a:2f0b with SMTP id ib3-20020a0562141c8300b0046ba79a2f0bmr35513222qvb.103.1658430159785;
Thu, 21 Jul 2022 12:02:39 -0700 (PDT)
X-Received: by 2002:a05:6808:10d5:b0:33a:b18f:7f3b with SMTP id
s21-20020a05680810d500b0033ab18f7f3bmr1025852ois.14.1658430159255; Thu, 21
Jul 2022 12:02:39 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!feed1.usenet.blueworldhosting.com!peer02.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.postscript
Date: Thu, 21 Jul 2022 12:02:39 -0700 (PDT)
In-Reply-To: <6fudnUECfJxtwkT_nZ2dnUU7_83NnZ2d@giganews.com>
Injection-Info: google-groups.googlegroups.com; posting-host=185.176.160.84; posting-account=Cp97SgoAAAC0t1Gya5PaPqyoafMoOtAn
NNTP-Posting-Host: 185.176.160.84
References: <a31725cf-9984-4c06-b541-bee4c215626cn@googlegroups.com>
<62351448-10c4-45c7-a2b7-7d71ac7d03aan@googlegroups.com> <6fudnUECfJxtwkT_nZ2dnUU7_83NnZ2d@giganews.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <06a35d75-fbcd-46f2-b6bf-99d277bf64d7n@googlegroups.com>
Subject: Re: ArcPrecise, an accurate arc
From: jdawiseman@gmail.com (jdaw1)
Injection-Date: Thu, 21 Jul 2022 19:02:39 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 2038
 by: jdaw1 - Thu, 21 Jul 2022 19:02 UTC

> so programmers have no surprises when they use ArcPrecise.

Good desideratum.

I’m coming to the view that ArcPrecise should have an extra parameter, which could be one of three values:
✪ `/l` ⟹︎ `arc`-style `lineto`;
✪ `/m` ⟹︎ `moveto`, especially useful if previous command was `closepath`;
✪ `/n` ⟹︎ nothing, presumably because the currentpoint is already the start of the curve.

The compulsory extra parameter prevents surprises.

> Advice: 'ArcPrecise' should have the same API as 'arc'.

Good desideratum. And
`/arc {/l ArcPrecise} def`
would work as you require.

Would this extra final parameter, `/l` | `/m` | `/n`, satisfy everybody?

Re: ArcPrecise, an accurate arc

<514d5e2b-b94a-4d46-8b4a-a6f8fa8831d6n@googlegroups.com>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=173&group=comp.lang.postscript#173

  copy link   Newsgroups: comp.lang.postscript
X-Received: by 2002:ac8:5fc1:0:b0:31e:f847:6c6f with SMTP id k1-20020ac85fc1000000b0031ef8476c6fmr538937qta.616.1658439082131;
Thu, 21 Jul 2022 14:31:22 -0700 (PDT)
X-Received: by 2002:a05:6808:10d5:b0:33a:b18f:7f3b with SMTP id
s21-20020a05680810d500b0033ab18f7f3bmr1282281ois.14.1658439081899; Thu, 21
Jul 2022 14:31:21 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!feed1.usenet.blueworldhosting.com!peer01.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.postscript
Date: Thu, 21 Jul 2022 14:31:21 -0700 (PDT)
In-Reply-To: <6fudnUECfJxtwkT_nZ2dnUU7_83NnZ2d@giganews.com>
Injection-Info: google-groups.googlegroups.com; posting-host=24.207.219.108; posting-account=G1KGwgkAAAAyw4z0LxHH0fja6wAbo7Cz
NNTP-Posting-Host: 24.207.219.108
References: <a31725cf-9984-4c06-b541-bee4c215626cn@googlegroups.com>
<62351448-10c4-45c7-a2b7-7d71ac7d03aan@googlegroups.com> <6fudnUECfJxtwkT_nZ2dnUU7_83NnZ2d@giganews.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <514d5e2b-b94a-4d46-8b4a-a6f8fa8831d6n@googlegroups.com>
Subject: Re: ArcPrecise, an accurate arc
From: luser.droog@gmail.com (luser droog)
Injection-Date: Thu, 21 Jul 2022 21:31:22 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 3716
 by: luser droog - Thu, 21 Jul 2022 21:31 UTC

On Thursday, July 21, 2022 at 9:17:26 AM UTC-5, John Reiser wrote:
> On 7/20/22 11:25, jdaw1 wrote:
> >> The build-in routines start with a line from a currentpoint, if there is one. This is annoying. Consider an annulus: there’s a line between the inner and outer circles, avoiding which requires a manual moveto. `ArcPrecise` and `ArcPreciseN` prevent this annoyance by starting, always, with a moveto, never a lineto.
> >
> > I think this is an error. What if the user wants a rounded rectangle. That isn’t possible if `ArcPrecise` starts with a `moveto`. Perhaps there could be an extra parameter, code, usually being one of {moveto}, {lineto}, {pop pop}. Advice welcomed.
> Advice: 'ArcPrecise' should have the same API as 'arc'. Why? When I see
> an image that I want to improve by using ArcPrecise instead of arc, then
> I want the *option* to interpose a global dictionary which defines 'arc'
> as 'ArcPrecise', and have better arcs be the only change to the image.
> I might not have access to the innards of the rest of the Postscript code;
> it might not be possible to use a text editor to change all calls on "arc".

I lean towards endorsing this view, but I don't hold the opinion very strongly.
Having a drop-in replacement is very useful. Having a considered and improved
behavior based on the common use cases is very useful. I'm not sure how
to weigh these benefits against each other.

For the implementation side -- apart from the policy decision -- mimicking
the existing API of `arc` can be pretty short and sweet:

% x0 y0
{ lineto } stopped { moveto } if

This leads to the question: how can you (most) easily get the starting point
out of `arc` or `ArcPrecise` (were it to follow this convention) in order to
call `moveto` first to eliminate the line segment (erhm, make its length zero)?

If you call `arc` or `ArcPrecise` with an angular difference of zero, it ought
to result in adding to the path just that initial point, right? Then you'd just
need a crazy function to rewrite the path where the very last `lineto` is
changed to a `moveto`. Too ugly for me to want to write it right now, but
feels possible to write.

The extra parameter idea is nice. Extra parameterization is the obvious
way to select variant behaviors. Whether it "looks nice" is a subjective
judgement.

Re: ArcPrecise, an accurate arc

<fcb58701-60b3-469e-a16f-eda111f52bcbn@googlegroups.com>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=174&group=comp.lang.postscript#174

  copy link   Newsgroups: comp.lang.postscript
X-Received: by 2002:a05:620a:2996:b0:6b5:e434:66b3 with SMTP id r22-20020a05620a299600b006b5e43466b3mr451972qkp.616.1658440819201;
Thu, 21 Jul 2022 15:00:19 -0700 (PDT)
X-Received: by 2002:a05:6808:3097:b0:33a:4534:c845 with SMTP id
bl23-20020a056808309700b0033a4534c845mr5768293oib.184.1658440818986; Thu, 21
Jul 2022 15:00:18 -0700 (PDT)
Path: i2pn2.org!rocksolid2!i2pn.org!usenet.blueworldhosting.com!feed1.usenet.blueworldhosting.com!peer01.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.postscript
Date: Thu, 21 Jul 2022 15:00:18 -0700 (PDT)
In-Reply-To: <514d5e2b-b94a-4d46-8b4a-a6f8fa8831d6n@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=185.176.160.84; posting-account=Cp97SgoAAAC0t1Gya5PaPqyoafMoOtAn
NNTP-Posting-Host: 185.176.160.84
References: <a31725cf-9984-4c06-b541-bee4c215626cn@googlegroups.com>
<62351448-10c4-45c7-a2b7-7d71ac7d03aan@googlegroups.com> <6fudnUECfJxtwkT_nZ2dnUU7_83NnZ2d@giganews.com>
<514d5e2b-b94a-4d46-8b4a-a6f8fa8831d6n@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <fcb58701-60b3-469e-a16f-eda111f52bcbn@googlegroups.com>
Subject: Re: ArcPrecise, an accurate arc
From: jdawiseman@gmail.com (jdaw1)
Injection-Date: Thu, 21 Jul 2022 22:00:19 +0000
Content-Type: text/plain; charset="UTF-8"
X-Received-Bytes: 1418
 by: jdaw1 - Thu, 21 Jul 2022 22:00 UTC

> { lineto } stopped { moveto } if

Nice. I was testing `currentpoint` with `stopped`: this is more concise. Thank you.

Re: ArcPrecise, an accurate arc

<fa2cc078-91ea-483f-9aa4-6f6634ff1dfcn@googlegroups.com>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=175&group=comp.lang.postscript#175

  copy link   Newsgroups: comp.lang.postscript
X-Received: by 2002:ad4:4ea2:0:b0:473:6d91:6759 with SMTP id ed2-20020ad44ea2000000b004736d916759mr728077qvb.102.1658442257915;
Thu, 21 Jul 2022 15:24:17 -0700 (PDT)
X-Received: by 2002:a05:6808:120f:b0:325:cef0:3f7 with SMTP id
a15-20020a056808120f00b00325cef003f7mr183391oil.38.1658442257660; Thu, 21 Jul
2022 15:24:17 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!feed1.usenet.blueworldhosting.com!peer01.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.postscript
Date: Thu, 21 Jul 2022 15:24:17 -0700 (PDT)
In-Reply-To: <fcb58701-60b3-469e-a16f-eda111f52bcbn@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=185.176.160.84; posting-account=Cp97SgoAAAC0t1Gya5PaPqyoafMoOtAn
NNTP-Posting-Host: 185.176.160.84
References: <a31725cf-9984-4c06-b541-bee4c215626cn@googlegroups.com>
<62351448-10c4-45c7-a2b7-7d71ac7d03aan@googlegroups.com> <6fudnUECfJxtwkT_nZ2dnUU7_83NnZ2d@giganews.com>
<514d5e2b-b94a-4d46-8b4a-a6f8fa8831d6n@googlegroups.com> <fcb58701-60b3-469e-a16f-eda111f52bcbn@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <fa2cc078-91ea-483f-9aa4-6f6634ff1dfcn@googlegroups.com>
Subject: Re: ArcPrecise, an accurate arc
From: jdawiseman@gmail.com (jdaw1)
Injection-Date: Thu, 21 Jul 2022 22:24:17 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 1755
 by: jdaw1 - Thu, 21 Jul 2022 22:24 UTC

An observation about the maths.

> A speed of Tan[θ/4]·4/3 has the radius precisely correct at the midpoint

If θ = 90°, then the speed is Tan[22½°]·4/3 = (√2 − 1)·4/3 ≈ 0.55228474983, which is only an edge bigger than Adobe’s fixed value of 0.552..

Re: ArcPrecise, an accurate arc

<38a7b948-6c4e-46b4-ad35-f554bc15278bn@googlegroups.com>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=176&group=comp.lang.postscript#176

  copy link   Newsgroups: comp.lang.postscript
X-Received: by 2002:a05:6214:23cb:b0:472:f1a5:5cea with SMTP id hr11-20020a05621423cb00b00472f1a55ceamr1780803qvb.13.1658476682707;
Fri, 22 Jul 2022 00:58:02 -0700 (PDT)
X-Received: by 2002:a05:6870:33a5:b0:f5:febe:1b27 with SMTP id
w37-20020a05687033a500b000f5febe1b27mr6778773oae.229.1658476682444; Fri, 22
Jul 2022 00:58:02 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!feed1.usenet.blueworldhosting.com!peer01.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.postscript
Date: Fri, 22 Jul 2022 00:58:02 -0700 (PDT)
In-Reply-To: <fa2cc078-91ea-483f-9aa4-6f6634ff1dfcn@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=185.176.160.84; posting-account=Cp97SgoAAAC0t1Gya5PaPqyoafMoOtAn
NNTP-Posting-Host: 185.176.160.84
References: <a31725cf-9984-4c06-b541-bee4c215626cn@googlegroups.com>
<62351448-10c4-45c7-a2b7-7d71ac7d03aan@googlegroups.com> <6fudnUECfJxtwkT_nZ2dnUU7_83NnZ2d@giganews.com>
<514d5e2b-b94a-4d46-8b4a-a6f8fa8831d6n@googlegroups.com> <fcb58701-60b3-469e-a16f-eda111f52bcbn@googlegroups.com>
<fa2cc078-91ea-483f-9aa4-6f6634ff1dfcn@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <38a7b948-6c4e-46b4-ad35-f554bc15278bn@googlegroups.com>
Subject: Re: ArcPrecise, an accurate arc
From: jdawiseman@gmail.com (jdaw1)
Injection-Date: Fri, 22 Jul 2022 07:58:02 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 1599
 by: jdaw1 - Fri, 22 Jul 2022 07:58 UTC

Is it the best name? Is an error fo 0.37 ppm ‘precise’, or merely ‘accurate’? Should it be ArcAccurate?

Re: ArcPrecise, an accurate arc

<2430a5d9-404b-4dd4-92e3-77d39ee185b0n@googlegroups.com>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=177&group=comp.lang.postscript#177

  copy link   Newsgroups: comp.lang.postscript
X-Received: by 2002:a0c:f0c4:0:b0:474:210a:69fd with SMTP id d4-20020a0cf0c4000000b00474210a69fdmr647751qvl.4.1658479338022;
Fri, 22 Jul 2022 01:42:18 -0700 (PDT)
X-Received: by 2002:a05:6808:14c3:b0:33a:9dc9:591b with SMTP id
f3-20020a05680814c300b0033a9dc9591bmr6080589oiw.229.1658479337687; Fri, 22
Jul 2022 01:42:17 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!feed1.usenet.blueworldhosting.com!peer01.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.postscript
Date: Fri, 22 Jul 2022 01:42:17 -0700 (PDT)
In-Reply-To: <38a7b948-6c4e-46b4-ad35-f554bc15278bn@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=80.95.206.212; posting-account=Nz572woAAADa1nfaua6PgtfQN0QQC_1b
NNTP-Posting-Host: 80.95.206.212
References: <a31725cf-9984-4c06-b541-bee4c215626cn@googlegroups.com>
<62351448-10c4-45c7-a2b7-7d71ac7d03aan@googlegroups.com> <6fudnUECfJxtwkT_nZ2dnUU7_83NnZ2d@giganews.com>
<514d5e2b-b94a-4d46-8b4a-a6f8fa8831d6n@googlegroups.com> <fcb58701-60b3-469e-a16f-eda111f52bcbn@googlegroups.com>
<fa2cc078-91ea-483f-9aa4-6f6634ff1dfcn@googlegroups.com> <38a7b948-6c4e-46b4-ad35-f554bc15278bn@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <2430a5d9-404b-4dd4-92e3-77d39ee185b0n@googlegroups.com>
Subject: Re: ArcPrecise, an accurate arc
From: pwakely99@googlemail.com (Phil Wakely)
Injection-Date: Fri, 22 Jul 2022 08:42:18 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 2291
 by: Phil Wakely - Fri, 22 Jul 2022 08:42 UTC

On Friday, 22 July 2022 at 08:58:03 UTC+1, jdaw1 wrote:
> Is it the best name? Is an error fo 0.37 ppm ‘precise’, or merely ‘accurate’? Should it be ArcAccurate?
Are you achieving a more accurate result by calculating with greater precision, or by using a better method? Increased precision usually increases accuracy (exception cases aside), but accuracy can often be improved without increasing precision using better approaches or calculation sequence adjustment (typically to maintain improved precision through the calculation especially with limited precision variables). Both "Accurate" and "Precise" would nominally require qualification or quantification (how precise or accurate); ArcImproved could also work.

Re: ArcPrecise, an accurate arc

<d3cde700-e7a4-405a-831d-8092051117c4n@googlegroups.com>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=178&group=comp.lang.postscript#178

  copy link   Newsgroups: comp.lang.postscript
X-Received: by 2002:a05:622a:201:b0:31e:e040:3754 with SMTP id b1-20020a05622a020100b0031ee0403754mr2069493qtx.538.1658479953178;
Fri, 22 Jul 2022 01:52:33 -0700 (PDT)
X-Received: by 2002:a05:6870:f59a:b0:10d:7170:2ec6 with SMTP id
eh26-20020a056870f59a00b0010d71702ec6mr7053562oab.294.1658479952990; Fri, 22
Jul 2022 01:52:32 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!feed1.usenet.blueworldhosting.com!peer01.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.postscript
Date: Fri, 22 Jul 2022 01:52:32 -0700 (PDT)
In-Reply-To: <2430a5d9-404b-4dd4-92e3-77d39ee185b0n@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=80.95.206.212; posting-account=Nz572woAAADa1nfaua6PgtfQN0QQC_1b
NNTP-Posting-Host: 80.95.206.212
References: <a31725cf-9984-4c06-b541-bee4c215626cn@googlegroups.com>
<62351448-10c4-45c7-a2b7-7d71ac7d03aan@googlegroups.com> <6fudnUECfJxtwkT_nZ2dnUU7_83NnZ2d@giganews.com>
<514d5e2b-b94a-4d46-8b4a-a6f8fa8831d6n@googlegroups.com> <fcb58701-60b3-469e-a16f-eda111f52bcbn@googlegroups.com>
<fa2cc078-91ea-483f-9aa4-6f6634ff1dfcn@googlegroups.com> <38a7b948-6c4e-46b4-ad35-f554bc15278bn@googlegroups.com>
<2430a5d9-404b-4dd4-92e3-77d39ee185b0n@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <d3cde700-e7a4-405a-831d-8092051117c4n@googlegroups.com>
Subject: Re: ArcPrecise, an accurate arc
From: pwakely99@googlemail.com (Phil Wakely)
Injection-Date: Fri, 22 Jul 2022 08:52:33 +0000
Content-Type: text/plain; charset="UTF-8"
X-Received-Bytes: 1635
 by: Phil Wakely - Fri, 22 Jul 2022 08:52 UTC

Really it should be ArcImprovedAccuracy; but I suspect that may be too long for most people's taste.

Re: ArcAccurate, an accurate arc

<bc30dbec-1b7d-413d-9803-64740ad3fd2cn@googlegroups.com>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=179&group=comp.lang.postscript#179

  copy link   Newsgroups: comp.lang.postscript
X-Received: by 2002:a37:be42:0:b0:6b5:e542:233b with SMTP id o63-20020a37be42000000b006b5e542233bmr1492798qkf.498.1658523792206;
Fri, 22 Jul 2022 14:03:12 -0700 (PDT)
X-Received: by 2002:a05:6870:f59a:b0:10d:7170:2ec6 with SMTP id
eh26-20020a056870f59a00b0010d71702ec6mr8609576oab.294.1658523791979; Fri, 22
Jul 2022 14:03:11 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!feed1.usenet.blueworldhosting.com!peer01.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.postscript
Date: Fri, 22 Jul 2022 14:03:11 -0700 (PDT)
In-Reply-To: <d3cde700-e7a4-405a-831d-8092051117c4n@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=185.176.160.84; posting-account=Cp97SgoAAAC0t1Gya5PaPqyoafMoOtAn
NNTP-Posting-Host: 185.176.160.84
References: <a31725cf-9984-4c06-b541-bee4c215626cn@googlegroups.com>
<62351448-10c4-45c7-a2b7-7d71ac7d03aan@googlegroups.com> <6fudnUECfJxtwkT_nZ2dnUU7_83NnZ2d@giganews.com>
<514d5e2b-b94a-4d46-8b4a-a6f8fa8831d6n@googlegroups.com> <fcb58701-60b3-469e-a16f-eda111f52bcbn@googlegroups.com>
<fa2cc078-91ea-483f-9aa4-6f6634ff1dfcn@googlegroups.com> <38a7b948-6c4e-46b4-ad35-f554bc15278bn@googlegroups.com>
<2430a5d9-404b-4dd4-92e3-77d39ee185b0n@googlegroups.com> <d3cde700-e7a4-405a-831d-8092051117c4n@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <bc30dbec-1b7d-413d-9803-64740ad3fd2cn@googlegroups.com>
Subject: Re: ArcAccurate, an accurate arc
From: jdawiseman@gmail.com (jdaw1)
Injection-Date: Fri, 22 Jul 2022 21:03:12 +0000
Content-Type: text/plain; charset="UTF-8"
X-Received-Bytes: 1658
 by: jdaw1 - Fri, 22 Jul 2022 21:03 UTC

Cross-link: also mentioned at https://github.com/jdaw1/placemat/issues/164

Re: ArcAccurate, an accurate arc

<b4900c80-d5fc-450a-ba0b-c96675019ef9n@googlegroups.com>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=180&group=comp.lang.postscript#180

  copy link   Newsgroups: comp.lang.postscript
X-Received: by 2002:a05:6214:27ef:b0:474:9aa:9e4d with SMTP id jt15-20020a05621427ef00b0047409aa9e4dmr7364010qvb.82.1658678545723;
Sun, 24 Jul 2022 09:02:25 -0700 (PDT)
X-Received: by 2002:a05:6870:ea84:b0:10d:fabe:9202 with SMTP id
s4-20020a056870ea8400b0010dfabe9202mr2404686oap.294.1658678545462; Sun, 24
Jul 2022 09:02:25 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!feed1.usenet.blueworldhosting.com!peer03.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.postscript
Date: Sun, 24 Jul 2022 09:02:25 -0700 (PDT)
In-Reply-To: <bc30dbec-1b7d-413d-9803-64740ad3fd2cn@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=185.176.160.84; posting-account=Cp97SgoAAAC0t1Gya5PaPqyoafMoOtAn
NNTP-Posting-Host: 185.176.160.84
References: <a31725cf-9984-4c06-b541-bee4c215626cn@googlegroups.com>
<62351448-10c4-45c7-a2b7-7d71ac7d03aan@googlegroups.com> <6fudnUECfJxtwkT_nZ2dnUU7_83NnZ2d@giganews.com>
<514d5e2b-b94a-4d46-8b4a-a6f8fa8831d6n@googlegroups.com> <fcb58701-60b3-469e-a16f-eda111f52bcbn@googlegroups.com>
<fa2cc078-91ea-483f-9aa4-6f6634ff1dfcn@googlegroups.com> <38a7b948-6c4e-46b4-ad35-f554bc15278bn@googlegroups.com>
<2430a5d9-404b-4dd4-92e3-77d39ee185b0n@googlegroups.com> <d3cde700-e7a4-405a-831d-8092051117c4n@googlegroups.com>
<bc30dbec-1b7d-413d-9803-64740ad3fd2cn@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <b4900c80-d5fc-450a-ba0b-c96675019ef9n@googlegroups.com>
Subject: Re: ArcAccurate, an accurate arc
From: jdawiseman@gmail.com (jdaw1)
Injection-Date: Sun, 24 Jul 2022 16:02:25 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 2005
 by: jdaw1 - Sun, 24 Jul 2022 16:02 UTC

Done. Added to my code
https://github.com/jdaw1/placemat/blob/main/PostScript/placemat.ps
with commit
https://github.com/jdaw1/placemat/commit/77143c29d01f9352a53fa98361cf4589cace92e8
For the latest version, look in that .ps, searching for “ArcAccurateBoth” or “B23RW2QpIjU”.

Re: ArcPrecise, an accurate arc

<fa331b86-4296-424a-9c6a-5b800b79f280n@googlegroups.com>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=230&group=comp.lang.postscript#230

  copy link   Newsgroups: comp.lang.postscript
X-Received: by 2002:a05:6214:5b01:b0:681:7704:d620 with SMTP id ma1-20020a0562145b0100b006817704d620mr38008qvb.7.1705950472825;
Mon, 22 Jan 2024 11:07:52 -0800 (PST)
X-Received: by 2002:a05:6830:7185:b0:6dc:63f:4ae3 with SMTP id
el5-20020a056830718500b006dc063f4ae3mr52315otb.3.1705950472560; Mon, 22 Jan
2024 11:07:52 -0800 (PST)
Path: i2pn2.org!i2pn.org!nntp.comgw.net!usenet.blueworldhosting.com!diablo1.usenet.blueworldhosting.com!peer01.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.postscript
Date: Mon, 22 Jan 2024 11:07:52 -0800 (PST)
In-Reply-To: <a31725cf-9984-4c06-b541-bee4c215626cn@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=2a00:23a8:42:4b01:9fb:cd8:1fb:534c;
posting-account=Cp97SgoAAAC0t1Gya5PaPqyoafMoOtAn
NNTP-Posting-Host: 2a00:23a8:42:4b01:9fb:cd8:1fb:534c
References: <a31725cf-9984-4c06-b541-bee4c215626cn@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <fa331b86-4296-424a-9c6a-5b800b79f280n@googlegroups.com>
Subject: Re: ArcPrecise, an accurate arc
From: jdawiseman@gmail.com (jdaw1)
Injection-Date: Mon, 22 Jan 2024 19:07:52 +0000
Content-Type: text/plain; charset="UTF-8"
X-Received-Bytes: 1261
 by: jdaw1 - Mon, 22 Jan 2024 19:07 UTC

Also see https://stackoverflow.com/questions/77855798/postscript-circles-how-accurate-how-improve/

1
server_pubkey.txt

rocksolid light 0.9.81
clearnet tor