Re: Lack of detailed documentation
On Monday, February 10, 2020, Strauss, Randy (ARC-AF)[SGT, INC] < randolph.a.stra...@nasa.gov> wrote: > Yes, I figured this out. People shouldn't have to figure out that the 2 > numbers in the vector are the scale and rotation. > They could be the rotation and scale. The rotation could be in degrees or > radians. > This is documentation- it should explain it. > And yes, does it rotate around its center, or the origin? > And this was just one example. Every friggin' one of them needs to be > documented. > I'm not demanding that they be done right away, but there should be a > description of each. They can all start with TBD... > I doubt anyone disagrees with the sentiment but the last time the lack of documentation was brought up here was years ago and no one stepped up then to volunteer their time to improve this lesser used area of the database and it doesn’t seem likely to happen organically here either as this message seems to imply a lack of interest in being part of the solution. David J.
Re: [EXTERNAL] Re: Lack of detailed documentation
Yes, I figured this out. People shouldn't have to figure out that the 2 numbers in the vector are the scale and rotation. They could be the rotation and scale. The rotation could be in degrees or radians. This is documentation- it should explain it. And yes, does it rotate around its center, or the origin? And this was just one example. Every friggin' one of them needs to be documented. I'm not demanding that they be done right away, but there should be a description of each. They can all start with TBD... -r Randy Strauss, desk: 650-604-0431 (Bldg N210, Rm 145, Cube 36) On 2/9/20, 8:09 AM, "Tom Lane" wrote: "David G. Johnston" writes: > On Fri, Feb 7, 2020 at 4:53 PM PG Doc comments form > wrote: >> On: https://urldefense.proofpoint.com/v2/url?u=https-3A__www.postgresql.org_docs_current_functions-2Dgeometry.html&d=DwIBAg&c=ApwzowJNAKKw3xye91w7BE1XMRKi2LN9kiMk5Csz9Zk&r=0XRgt7H2WP_TiC5qNss_VhvfCsa-0F_Mw2WUm8TRNiA&m=IDBm4StAmus_A2EYOJRshLFkAAflIS2G74fY7Dhjpag&s=ZuX_8udUWIRdOV5aFxQKHppjdkUgMrhz0mg68HmdTlo&e= >> The functions aren't defined, nor have pointers. For instance: >> * Scaling/rotationbox '((0,0),(1,1))' * point '(2.0,0)' >> I see how it can be scaling (or shearing), but how does it do rotation? >> Or maybe when the points x^2+y^2 == 1, it's interpreted at rotation? > Google: "box point multiplication postgres" came up with the follow book > section: > Haven't independently confirm the math but it sounds reasonable... I responded to the OP about this but unaccountably forgot to cc the list. The two main points were: * Per high-school-level vector geometry, rotation around the origin by an angle theta is equivalent to multiplying by the vector (cos(theta), sin(theta)). (So no, the book section you quoted isn't quite right :-(.) But we can't go and offer a geometry course on this page. * While this works for rotating points, paths, and circles, it doesn't really work for rotating boxes, because for any rotation angle that's not a multiple of 90 degrees, you'd need to end up with a tilted box ... and our box type has no notion of tilted. The specified corners rotate to the right places, but the box size isn't preserved. So it seems fairly unfortunate to me that the two examples of scaling/rotation use a box as the LHS. I could get behind changing them to use, say, a path as LHS. But I don't think there's room to explain how to do rotation if you don't know that already, any more than (say) our explanation of aggregate functions tries to explain statistics. regards, tom lane
Re: Lack of detailed documentation
"David G. Johnston" writes: > I doubt anyone disagrees with the sentiment but the last time the lack of > documentation was brought up here was years ago and no one stepped up then > to volunteer their time to improve this lesser used area of the database > and it doesn't seem likely to happen organically here either as this > message seems to imply a lack of interest in being part of the solution. Yeah. Attached is my proposal for clarifying what to do to rotate. There's a lot more that could be done to improve this page --- for one thing, most of the other similar tables show the results of the examples, and for another, it's pretty unclear which data types each operator takes. But I don't have the time or interest to tackle a major rewrite, and so far nobody else has stepped up either. One thing that's sort of blocking any real progress on this is the draconian space constraints imposed by the tabular format, which is hurting us on a lot of these pages, not just this one. Alvaro did some preliminary investigation towards finding a better way [1], but nobody's tried to push that forward. regards, tom lane [1] https://www.postgresql.org/message-id/2020011618.GA25792%40alvherre.pgsql diff --git a/doc/src/sgml/func.sgml b/doc/src/sgml/func.sgml index ceda48e..400b21d 100644 --- a/doc/src/sgml/func.sgml +++ b/doc/src/sgml/func.sgml @@ -8363,12 +8363,18 @@ CREATE TYPE rainbow AS ENUM ('red', 'orange', 'yellow', 'green', 'blue', 'purple * Scaling/rotation -box '((0,0),(1,1))' * point '(2.0,0)' + + path '(0,0),(1,0),(1,1)' * point '(3.0,0)' + path '(0,0),(1,0),(1,1)' * point(cosd(45), sind(45)) + / Scaling/rotation -box '((0,0),(2,2))' / point '(2.0,0)' + + path '(0,0),(1,0),(1,1)' / point '(2.0,0)' + path '(0,0),(1,0),(1,1)' / point(cosd(45), sind(45)) + #