Page 11 of 51

Re: Software that makes placemats

Posted: 23:31 Mon 21 Nov 2011
by jdaw1
DRT wrote:
jdaw1 wrote:
DRT wrote:
jdaw1 wrote:
DRT wrote:Printing each person's placemat followed by their tasting note sheets solves that problem completely.
Which has been the default behaviour for some years.
Perhaps that is why I perceived the set provided for this tasting to be a problem.
That would be these placemats, exhibiting exactly the same default behaviour, would it? Unless Rob’s faffing caused the problem.
User error. :roll:
One might think that the solution is to prevent such faffing. But the anti-faffing technology
jdaw1 wrote:Image
uses A3 paper. When paper sizes are different, all of one is printed, then all of the next, to simplify control of the printer. Which brings us back to the same problem, for which the 180° technique is the best solution yet available. (E.g., 15 Dec 2011, The Bell.)

Re: Software that makes placemats

Posted: 23:35 Mon 21 Nov 2011
by jdaw1
jdaw1 wrote:
PhilW wrote:I'd suggest that the [x y] scales should be of the same proportion (which they are either not, above, or you have additional column gaps which I don't believe you don't intend if they are). So for the example you are creating, with proportionate scales the elements would be [ [0 4] [2 4] [4 4] [6 4] [0 2] [3 2] [6 2] [0 0] [3 0] [6 0] ].
In most other layout designs I have adopted the general principle of using the whole page. For example, in the placemats for the Star Quality tasting, observe the small gap between the columns the constraint on circle size was y not x. If this code scaled the two directions the same, then typically there would two large gaps, either left and right, or top and bottom. :-(

Or have I misunderstood what you are advocating?
However, I do agree that it would be neater if the two A1s touched. But how should that be expressed that in the parameter?

Re: Software that makes placemats

Posted: 11:22 Tue 22 Nov 2011
by PhilW
jdaw1 wrote:
PhilW wrote:I'd suggest that the [x y] scales should be of the same proportion (which they are either not, above, or you have additional column gaps which I don't believe you don't intend if they are). So for the example you are creating, with proportionate scales the elements would be [ [0 4] [2 4] [4 4] [6 4] [0 2] [3 2] [6 2] [0 0] [3 0] [6 0] ].
In most other layout designs I have adopted the general principle of using the whole page. For example, in the placemats for the Star Quality tasting, observe the small gap between the columns the constraint on circle size was y not x. If this code scaled the two directions the same, then typically there would two large gaps, either left and right, or top and bottom. :-(

Or have I misunderstood what you are advocating?
I could have been clearer; quick diag:
Image

- If you draw radius 1 circles with the co-ordinates you specified as centre locations, you get the overlapping circles as shown in top left.
- If you draw radius 0.5 circles with your centre co-ords you get large spaces between columns, as per top right.
- You can achieve what I assume you intend as per middle left, but only by the x and y axes being non equal; if you make the axes equal (i.e. equal indices per inch) then you get the diagram at the middle right. Effectively you are not drawing circles in x,y (though you are drawing them in transformed axes).
- All I was suggesting was that to keep things simple for the user, using axes with equal indices to physical spacing would be simpler. The alternative co-ords I suggested with radius 1 circles generates the bottom left image, effectively identical to the mid-left which I assumed was as intended, but with equally spaces axes.
(minor note, I made the radii 0.95 rather than 1 for all the above to provide a little separation, if we're being precise :) )

Re: Software that makes placemats

Posted: 14:58 Tue 22 Nov 2011
by Alex Bridgeman
jdaw1 wrote:That code fragment has been updated to

Code: Select all

		<<
			/OutputFaceUp DefaultOutputFaceUp 4 index {not} if  /Duplex false
			/ImagingBBox null  /PageSize [PageWidth OuterMarginL OuterMarginR add add  PageHeight OuterMarginB OuterMarginT add add]
		>> setpagedevice
this starting with two things on the stack, the lower of which is the rotation boolean.
I have come up with a possible alternative approach that could cope with either faffed output (ie. all tasting mats together, all notes sheets together) or unfaffed output (ie. tasting mats and notes sheets printed as a set for each person). Provided the parameter NumberOfSheetsPerPerson is known then a possible approach that has not been discussed yet would be for the person applying the output from the PS programme to count the bloody sheets as they are being laid out.

Are we not in danger of calling for a working group meeting just to open another bottle of T77?

Re: Software that makes placemats

Posted: 21:40 Tue 22 Nov 2011
by jdaw1
AHB wrote:a possible approach that has not been discussed yet would be for the person applying the output from the PS programme to count the bloody sheets as they are being laid out.
Yes, but could DRT do that without complaint?

Re: Software that makes placemats

Posted: 21:42 Tue 22 Nov 2011
by jdaw1
PhilW wrote:- If you draw radius 1 circles with the co-ordinates you specified as centre locations, you get the overlapping circles as shown in top left.
- If you draw radius 0.5 circles with your centre co-ords you get large spaces between columns, as per top right.
- You can achieve what I assume you intend as per middle left, but only by the x and y axes being non equal; if you make the axes equal (i.e. equal indices per inch) then you get the diagram at the middle right. Effectively you are not drawing circles in x,y (though you are drawing them in transformed axes).
- All I was suggesting was that to keep things simple for the user, using axes with equal indices to physical spacing would be simpler. The alternative co-ords I suggested with radius 1 circles generates the bottom left image, effectively identical to the mid-left which I assumed was as intended, but with equally spaces axes.
(minor note, I made the radii 0.95 rather than 1 for all the above to provide a little separation, if we're being precise :) )
So, in your scheme, if the user wants to fill the page radius as large as possible the user has to know the paper size, the margins, and solve the quadratic. Hmmm: me no like. Typically we want to say ‟these in the same column, these in the same row, and these between that other column|row”. My scheme allows that.

Also, though I am applying a scaling factor to the user’s [x y] parameters, the circles will still be circles.”  I’m spreading them over the page.

”  Which is why the radius equation is a full quadratic, rather than an elementary square root.

Re: Software that makes placemats

Posted: 22:19 Tue 22 Nov 2011
by DRT
jdaw1 wrote:
AHB wrote:a possible approach that has not been discussed yet would be for the person applying the output from the PS programme to count the bloody sheets as they are being laid out.
Yes, but could DRT do that without complaint?
I am starting to feel like a Scottish Conservative Party candidate trying to win a seat in a general election. Perhaps I should form a coalition with Rob and say that I have have been a firm believer of using little sticky labels between each set all along?

Re: Software that makes placemats

Posted: 22:42 Tue 22 Nov 2011
by jdaw1
DRT wrote:Scottish Conservative Party candidate trying to win a seat in a general election
DRT wrote:User error. :roll:

Re: Software that makes placemats

Posted: 09:05 Wed 23 Nov 2011
by jdaw1
Extra reasoning for PhilW. If a user wished to have some arrangement of circles, on some paper size, that used all the available space, how should the user specify that? Bear in mind that the centres have x values from MgnL+Radius to PageWidth”“MgnR”“Radius, and that the user does not at this time know the Radius.

My view is that the user may specify circles over arbitrary x and y ranges, and that then a radius will be computed and an affine transformation applied to the centres.

Re: Software that makes placemats

Posted: 10:07 Wed 23 Nov 2011
by PhilW
jdaw1 wrote:Extra reasoning for PhilW. If a user wished to have some arrangement of circles, on some paper size, that used all the available space, how should the user specify that? Bear in mind that the centres have x values from MgnL+Radius to PageWidth”“MgnR”“Radius, and that the user does not at this time know the Radius.

My view is that the user may specify circles over arbitrary x and y ranges, and that then a radius will be computed and an affine transformation applied to the centres.
I think we're talking at cross-purposes - I don't disagree with anything in your last two posts; The only change I was suggesting was that in specifying the indices for the arbitrary arrangement, that I would have naturally used values for the y co-ordinate which were scaled by a factor of two compared with those you had used; the diagrams were intended to illustrate why. I agree that the user should not be consider page sizes, margins or quadratics in providing the arrangement.

Re: Software that makes placemats

Posted: 14:06 Wed 23 Nov 2011
by jdaw1
Are you saying that the code should scale x and y by the same factor?

Re: Software that makes placemats

Posted: 16:40 Wed 23 Nov 2011
by PhilW
jdaw1 wrote:Are you saying that the code should scale x and y by the same factor?
No (although that could be a further option were a sparse design required) I was only suggesting that (for an arbitrary design) I would find it simpler to specify the [x y] pairs as if they represented co-ordinates of the centre of circles drawn on an equally spaced grid with equally spaced axes; and then you then fit that pattern of circles with appropriate circle sizing, spacing etc as best fits page/margin criteria as usual.

Re: Software that makes placemats

Posted: 22:53 Wed 23 Nov 2011
by jdaw1
PhilW wrote:No (although that could be a further option were a sparse design required) I was only suggesting that (for an arbitrary design) I would find it simpler to specify the [x y] pairs as if they represented co-ordinates of the centre of circles drawn on an equally spaced grid with equally spaced axes; and then you then fit that pattern of circles with appropriate circle sizing, spacing etc as best fits page/margin criteria as usual.
Your answer appears to be self-contradictory. I am too deeply puzzled to continue without some pseudo-code from you. Given the array, and a usable W and H (they being page dimensions less margins), what happens next?

Re: Software that makes placemats

Posted: 11:16 Fri 25 Nov 2011
by PhilW
jdaw1 wrote:
PhilW wrote:No (although that could be a further option were a sparse design required) I was only suggesting that (for an arbitrary design) I would find it simpler to specify the [x y] pairs as if they represented co-ordinates of the centre of circles drawn on an equally spaced grid with equally spaced axes; and then you then fit that pattern of circles with appropriate circle sizing, spacing etc as best fits page/margin criteria as usual.
Your answer appears to be self-contradictory. I am too deeply puzzled to continue without some pseudo-code from you. Given the array, and a usable W and H (they being page dimensions less margins), what happens next?
I don't think I'm suggesting any change to the next steps, I was only ever intending to help clarify the initial indexes so am reluctant to jump in with code... however since asked, I would expect the next steps to be (probably roughly as currently?) along the lines of:

Code: Select all

pattern_width=(max(x[1..n])+1) - (min(x[1..n])-1)
pattern_height=(max(y[1..n])+1) - (min(x[1..n])-1)
scale_x = W/pattern_width
scale_y = H/pattern_height
realx[1..n] = scale_x * x[1..n]      // (but see *note)
realy[1..n] = scale_y * y[1..n]      // (but see *note)
max_circ_dia_x = 2*scale_x
max_circ_dia_y = 2*scale_y
if max_circ_dia_x > max_circ_dia_y then circ_dia = max_circ_dia_y else circ_dia = max_circ_dia_x

*note: this scaling only works if min(x)-1==0 and min(y)-1==0 and otherwise would need the appropriate offset taking into account; I have omitted this for clarity.
thereby creating a list of [realx,realy] centred circles with diameter circ_dia

Hope that helps; I have a feeling that the confusion between us is probably something very simple which would be worked out in about 10sec face to face with a piece of paper... it might be better simply to ignore me for now - I wasn't suggesting something significant, it was supposed to be a minor clarification for ease of use!

Re: Software that makes placemats

Posted: 14:54 Fri 25 Nov 2011
by jdaw1
Thank you. Typically I want the radius to be as large as possible. I think that you assume that the radius, on at least one of the scales of the user, is unit. In easy rectangular cases that won’t overly tax a user, but in general isn’t so good. E.g., [ [0 2] [2 2] [1 1] [3 1] [0 0] [2 0] ].

Re: Software that makes placemats

Posted: 15:31 Fri 25 Nov 2011
by PhilW
jdaw1 wrote:Thank you. Typically I want the radius to be as large as possible. I think that you assume that the radius, on at least one of the scales of the user, is unit. In easy rectangular cases that won’t overly tax a user, but in general isn’t so good. E.g., [ [0 2] [2 2] [1 1] [3 1] [0 0] [2 0] ].
True, I was indeed assuming a unit radius for the layout specification and your counter-example shows the problem of overlapping. With the centre-points specified, it would still be necessary to test largest valid radius to avoid overlap (with/without spacing).

Re: Software that makes placemats

Posted: 15:44 Fri 25 Nov 2011
by jdaw1
jdaw1 wrote:My code would then choose the radius and separately scale the x and y directions such that things fit as snugly as possible, obviously subject to the other upper bounds on the radius.
PhilW wrote:With the centre-points specified, it would still be necessary to test largest valid radius to avoid overlap (with/without spacing).
Are we disagreeing?

Re: Software that makes placemats

Posted: 16:05 Fri 25 Nov 2011
by PhilW
jdaw1 wrote:
jdaw1 wrote:My code would then choose the radius and separately scale the x and y directions such that things fit as snugly as possible, obviously subject to the other upper bounds on the radius.
PhilW wrote:With the centre-points specified, it would still be necessary to test largest valid radius to avoid overlap (with/without spacing).
Are we disagreeing?
Maybe not, if you can resolve this for me:
Test1 : [0,0] [1,1] [2,1] [3,0]
Test2 : [0,0] [2,2] [4,2] [6,0]
Test3 : [0,0] [2,1] [4,1] [6,0]
How would the above three examples differ in final rendered appearance?
I think (hope) you can the desired pattern achieved; if any of the above differ, which spec would the user be expected to supply, and why?

Re: Software that makes placemats

Posted: 16:14 Fri 25 Nov 2011
by jdaw1
PhilW wrote:Test1 : [0,0] [1,1] [2,1] [3,0]
Test2 : [0,0] [2,2] [4,2] [6,0]
Test3 : [0,0] [2,1] [4,1] [6,0]
How would the above three examples differ in final rendered appearance?
I think (hope) you can the desired pattern achieved; if any of the above differ, which spec would the user be expected to supply, and why?
‟They ought to be the same”, I thought. And then tested them, and they were the same. Is that happiness?

Re: Software that makes placemats

Posted: 16:39 Fri 25 Nov 2011
by PhilW
jdaw1 wrote:
PhilW wrote:Test1 : [0,0] [1,1] [2,1] [3,0]
Test2 : [0,0] [2,2] [4,2] [6,0]
Test3 : [0,0] [2,1] [4,1] [6,0]
How would the above three examples differ in final rendered appearance?
I think (hope) you can the desired pattern achieved; if any of the above differ, which spec would the user be expected to supply, and why?
‟They ought to be the same”, I thought. And then tested them, and they were the same. Is that happiness?
Am both pleased and surprised; happiness and silence is achieved. :nirvana:

Re: Software that makes placemats

Posted: 16:00 Sat 26 Nov 2011
by jdaw1
Phil,
jdaw1 wrote:[ [0 2] [2 2] [4 2] [6 2] [0 1] [3 1] [6 1] [0 0] [3 0] [6 0] ]
jdaw1 wrote:Image
jdaw1 wrote:However, I do agree that it would be neater if the two A1s touched. But how should that be expressed that in the parameter?
Image Idea! Image

Currently the array contains items of the form [ x y ]. Perhaps, also allowed, could be [ x y x1 y1 ]. As now, glasses are placed at (x y), and then the code chooses
jdaw1 wrote:the radius and separately scale the x and y directions such that things fit as snugly as possible, obviously subject to the other upper bounds on the radius.
The radius chosen, those of the new form are then moved along the straight line from (x y) to (x1 y1), as far as possible without crashing into another circle. This will be done pairwise, each circle being moved a proportion p along the line, p chosen to be the lesser of 1 and first crash. Each circle will be moved the least of its pairwise p’s. (This is robust and simple, but wouldn’t handle complicated sequences of possible collisions.)

So [ [0 2] [2 2 3 2] [4 2 3 2] [6 2] [0 1] [3 1] [6 1] [0 0] [3 0] [6 0] ] would make the two A1s touch.

Objections?

Re: Software that makes placemats

Posted: 18:13 Sat 26 Nov 2011
by DRT
I have no wish to prolong this, but I disagree that it would be neater if the two A1s touched. The image in the above post shows four glasses spaces on the top line that are evenly spaced. That is neat. Four glasses spaces on a line that are unevenly spaced would be less neat.

Re: Software that makes placemats

Posted: 18:25 Sat 26 Nov 2011
by jdaw1
DRT wrote:I disagree that it would be neater if the two A1s touched. The image in the above post shows four glasses spaces on the top line that are evenly spaced. That is neat. Four glasses spaces on a line that are unevenly spaced would be less neat.
Imagine that 0 = 1963, 1 = 1966, 2 = 1970. The touching is to bring together the two shipper-A 1966s (perhaps different sizes or different bottlers). Obviously if the four bottles in the top row had relationships to each other that were of the same type, such as all being different vintages, then equal spacing would be better.

Re: Software that makes placemats

Posted: 23:02 Sat 26 Nov 2011
by jdaw1
jdaw1 wrote:The radius chosen, those of the new form are then moved along the straight line from (x y) to (x1 y1), as far as possible without crashing into another circle. This will be done pairwise, each circle being moved a proportion p along the line, p chosen to be the lesser of 1 and first crash. Each circle will be moved the least of its pairwise p’s. (This is robust and simple, but wouldn’t handle complicated sequences of possible collisions.)
The simple algorithm has the advantage of simplicity. Can better be done?

As an example, let the pattern include [ ! [-1 0 0 0] [0 1 0 0] [0 -1 0 0] ! ], and that the ellipses include circles much closer to each other, such that the three circles shown aren’t initially touching, and by a good margin. Then there are multiple solutions: for example, any of the three could land at (0, 0). And what about [ ! [-1 0 0 0] [0 2 0 0] [0 -1 0 0] ! ]?

Algorithm suggestions welcomed.

Re: Software that makes placemats

Posted: 22:51 Sun 27 Nov 2011
by DRT
jdaw1 wrote:
DRT wrote:I disagree that it would be neater if the two A1s touched. The image in the above post shows four glasses spaces on the top line that are evenly spaced. That is neat. Four glasses spaces on a line that are unevenly spaced would be less neat.
Imagine that 0 = 1963, 1 = 1966, 2 = 1970. The touching is to bring together the two shipper-A 1966s (perhaps different sizes or different bottlers). Obviously if the four bottles in the top row had relationships to each other that were of the same type, such as all being different vintages, then equal spacing would be better.
I disagree. We have many tastings where two ports are more closely related than some others and have never had the need to do anything similar to this.