You can subscribe to this list here.
2003 
_{Jan}

_{Feb}

_{Mar}

_{Apr}

_{May}

_{Jun}

_{Jul}

_{Aug}

_{Sep}

_{Oct}
(24) 
_{Nov}
(524) 
_{Dec}
(655) 

2004 
_{Jan}
(515) 
_{Feb}
(624) 
_{Mar}
(407) 
_{Apr}
(593) 
_{May}
(422) 
_{Jun}
(529) 
_{Jul}
(737) 
_{Aug}
(448) 
_{Sep}
(343) 
_{Oct}
(503) 
_{Nov}
(593) 
_{Dec}
(474) 
2005 
_{Jan}
(771) 
_{Feb}
(602) 
_{Mar}
(588) 
_{Apr}
(488) 
_{May}
(218) 
_{Jun}
(544) 
_{Jul}
(889) 
_{Aug}
(657) 
_{Sep}
(781) 
_{Oct}
(486) 
_{Nov}
(750) 
_{Dec}
(409) 
2006 
_{Jan}
(442) 
_{Feb}
(242) 
_{Mar}
(303) 
_{Apr}
(617) 
_{May}
(811) 
_{Jun}
(525) 
_{Jul}
(367) 
_{Aug}
(318) 
_{Sep}
(202) 
_{Oct}
(395) 
_{Nov}
(260) 
_{Dec}
(185) 
2007 
_{Jan}
(525) 
_{Feb}
(554) 
_{Mar}
(494) 
_{Apr}
(344) 
_{May}
(168) 
_{Jun}
(295) 
_{Jul}
(459) 
_{Aug}
(468) 
_{Sep}
(390) 
_{Oct}
(558) 
_{Nov}
(351) 
_{Dec}
(487) 
2008 
_{Jan}
(583) 
_{Feb}
(471) 
_{Mar}
(979) 
_{Apr}
(436) 
_{May}
(335) 
_{Jun}
(368) 
_{Jul}
(281) 
_{Aug}
(239) 
_{Sep}
(243) 
_{Oct}
(338) 
_{Nov}
(248) 
_{Dec}
(149) 
2009 
_{Jan}
(465) 
_{Feb}
(349) 
_{Mar}
(388) 
_{Apr}
(415) 
_{May}
(211) 
_{Jun}
(226) 
_{Jul}
(262) 
_{Aug}
(376) 
_{Sep}
(419) 
_{Oct}
(370) 
_{Nov}
(257) 
_{Dec}
(449) 
2010 
_{Jan}
(377) 
_{Feb}
(268) 
_{Mar}
(345) 
_{Apr}
(281) 
_{May}
(73) 
_{Jun}
(192) 
_{Jul}
(336) 
_{Aug}
(201) 
_{Sep}
(328) 
_{Oct}
(131) 
_{Nov}
(162) 
_{Dec}
(248) 
2011 
_{Jan}
(138) 
_{Feb}
(182) 
_{Mar}
(241) 
_{Apr}
(174) 
_{May}
(64) 
_{Jun}
(321) 
_{Jul}
(220) 
_{Aug}
(139) 
_{Sep}
(214) 
_{Oct}
(174) 
_{Nov}
(91) 
_{Dec}
(119) 
2012 
_{Jan}
(182) 
_{Feb}
(260) 
_{Mar}
(207) 
_{Apr}
(119) 
_{May}
(118) 
_{Jun}
(150) 
_{Jul}
(72) 
_{Aug}
(125) 
_{Sep}
(137) 
_{Oct}
(187) 
_{Nov}
(122) 
_{Dec}
(131) 
2013 
_{Jan}
(151) 
_{Feb}
(128) 
_{Mar}
(290) 
_{Apr}
(236) 
_{May}
(157) 
_{Jun}
(204) 
_{Jul}
(266) 
_{Aug}
(190) 
_{Sep}
(476) 
_{Oct}
(257) 
_{Nov}
(193) 
_{Dec}
(225) 
2014 
_{Jan}
(228) 
_{Feb}
(189) 
_{Mar}
(372) 
_{Apr}
(340) 
_{May}
(272) 
_{Jun}
(191) 
_{Jul}
(138) 
_{Aug}
(182) 
_{Sep}
(204) 
_{Oct}
(283) 
_{Nov}
(271) 
_{Dec}
(168) 
2015 
_{Jan}
(154) 
_{Feb}
(217) 
_{Mar}
(177) 
_{Apr}

_{May}

_{Jun}

_{Jul}

_{Aug}

_{Sep}

_{Oct}

_{Nov}

_{Dec}

S  M  T  W  T  F  S 







1
(1) 
2
(1) 
3
(2) 
4

5
(4) 
6

7
(4) 
8
(2) 
9
(18) 
10
(2) 
11
(6) 
12
(1) 
13
(1) 
14
(1) 
15
(5) 
16
(13) 
17
(5) 
18
(4) 
19
(11) 
20
(4) 
21
(1) 
22
(5) 
23
(2) 
24

25
(14) 
26
(9) 
27
(2) 
28
(2) 
29

30
(8) 
31
(10) 





From: Bric <bric@fl...>  20110113 21:47:33

On January 9, 2011 at 4:03 PM Bryan Hoyt  Brush Technology <bryan@...> wrote: > Briefly, to get the x,y position of a point after it's transformed, use a > function like this (in Python): > > def transform_point(transform, x, y): > x = transform[0][0]*x + transform[0][1]*y + transform[0][2] > y = transform[1][0]*x + transform[1][1]*y + transform[1][2] > return x,y Sorry, as much as i've tried (given time constraints), I can't figure out where you got the above 2x3 matrix instead of a 2x2. Or is it a 2x3 python array, whose (top)left 2x2 elements are the rotation transformation? In that case, where do you get transform[0][2] and transform[1][2] from? > > If you need to modify the x,y position, it gets slightly more complicated, > but only a little. 1) transform the point as above, to get the original > values if you need them for anything 2) calculate the new values you need. > 3) Transform them back to the original x,y space by using the matrix > inverse: http://en.wikipedia.org/wiki/Matrix_inverse You mean, given a certain nonorigin position, multiplying by the inverse would give me that position. (note, I am saying "ORIGIN" (0,0), not "original" :)) > > In pseudocode: > > >>> orig_x, orig_y = however_you_got_the_values_in_the_first_place() > >>> t_x, t_y = transform_point(transform, orig_x, orig_y) > >>> new_x_t, new_y_t = calculate_some_new_values(t_x, t_y) > >>> new_x, new_y = transform_point(invert_transform(transform), new_x_t, > new_y_t) > > To get the matrix inverse isn't 100% straightforward, mathematically. It's > easy in python, though. Here's the function I use (pretty much just a > wrapper around numpy.matrix.I): you are making me think back years ago to linear algebra class... yes, I suspected from the getgo I might need the inverse at some point. thanks again > > import numpy > def invert_transform(transform): > transform = transform[:] # duplicate list to avoid modifying it > transform += [[0, 0, 1]] > inverse = numpy.matrix(transform).I.tolist() > inverse.pop() > return inverse > >  Bryan > > On Mon, Jan 10, 2011 at 09:26, Bric <bric@...> wrote: > > > > > > > On January 9, 2011 at 2:21 PM Bryan Hoyt  Brush Technology < > > bryan@...> > > wrote: > > > > > Hi Bric, > > > > > > Yes, you're correct. The x/y values are being translated, scaled, > > rotated, > > > and/or sheared by the transform matrix. These pages on Wikipedia should > > help > > > you to get started: > > http://en.wikipedia.org/wiki/Transformation_(geometry) > > > and http://en.wikipedia.org/wiki/Transformation_matrix > > > > Yes, I am using the (cos, sin, sin, cos) rotation matrix in my script, and > > inkscape seems to visualize my rotation angle the way i intend. But, as is > > the > > issue, not the x/y position of my intent. > > > > OK. Thanks for this info. At this point I can only vaguely understand how > > (and > > why) inkscape would store transformed values in the SVG file, instead of > > storing > > the original coordinates and then subjecting those to whatever > > transformation > > the applies, during render time. I'll have to get back to this later. > > > > > > Also, it's not just the transform matrix on the object itself that you > > need > > > to think about. If the text object is part of a group or a layer, then if > > > there's a transform matrix on any of its parent groups or layers, they'll > > > affect the object cumulatively. > > > > thanks. > > > > > > I've written Python code to handle all these scenarios in the Pixelsnap > > > extension. Have a look at the code for that if you want. > > > > I skimmed through your code, and see that you are computing offsets based > > on > > transformation. Still, it looks complex for me right now; will have to > > return to > > it later when I have more time. > > > > I can't wrap my mind around how exactly to apply the transformation to the > > x y > > position. I'll tinker with this later. > > > > thanks again > > > > > > > > > >  > PS. Check out the Brush newsletter: *Subscribe or read our previous > newsletters* <http://brush.co.nz/newsletters>; > > Bryan Hoyt, *Web Development Manager*  Brush Technology > *Ph:* +64 3 741 1204 *Mobile:* +64 21 238 7955 > *Web:* brush.co.nz 