Home » Eclipse Projects » GEF » Rounding errors in figure drawing
Rounding errors in figure drawing [message #145925] |
Mon, 02 August 2004 15:10 |
Bradley Schmerl Messages: 26 Registered: July 2009 |
Junior Member |
|
|
This is a multi-part message in MIME format.
--------------020800070202060304050505
Content-Type: text/plain; charset=us-ascii; format=flowed
Content-Transfer-Encoding: 7bit
Hi:
I'm having problems with rounding errors in figure painting when zooming
(see the attached shot). I am passing in the same rectangle to
outlineShape as I am to fillShape, but the outline seems to be bigger
than the inside when zooming in (in the screenshot, the zoom level is
400%). It only seems to be happening on figures that have curves in them
(circles, rounded rectangles).
In fillShape, I am using:
g.fillOval (r) and g.fillRoundedRectangle (r, r.width/6, r.height/6)
In outlineShap, I am using:
g.drawOval (r) and g.drawRoundedRectangle (r, r.width/6, r.height/6)
Has anyone experienced this problem? If so, and I am doing something
wrong, could you tell me the right way. If there is a workaround, I'd
like to know that too.
Thanks,
Bradley.
--------------020800070202060304050505
Content-Type: image/png;
name="Screenshot-Eclipse.png"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
filename="Screenshot-Eclipse.png"
iVBORw0KGgoAAAANSUhEUgAAAucAAAHpCAYAAAAh5ZIlAAAABmJLR0QA/wD/ AP+gvaeTAAAA
CXBIWXMAAAEbAAABGwGN907lAAAAB3RJTUUH1AgCDwIiMwgTiAAAIABJREFU eJzt3XmUXGWd
8PFfdVYCgbAESCIJS4BgwhoQlzAoKgi8L4vaIg7ijHNUZBycc8bzRvEoYUYc QRxncBQdB2ZE
ljhR0VGEgyDIphMImzEGkgAhQBKykJB96dT7B9PQ3VXd6aqu5bm3Pp+/PLe7 q59OYfW3nv7d
ewvFYrEYAABA07U1ewEAAMBrxDkAACRCnAMAQCLEOQAAJEKcAwBAIsQ5AAAk QpwDAEAixDkA
ACRCnAMAQCLEOQAAJEKcAwBAIsQ5AAAkQpwDAEAixDkAACRCnAMAQCLEOQAA JEKcAwBAIsQ5
AAAkQpwDAEAixDkAACRCnAMAQCLEOQAAJEKcAwBAIsQ5AAAkQpwDAEAixDkA ACRCnAMAQCLE
OQAAJEKcAwBAIsQ5AAAkQpwDAEAixDkAACRCnAMAQCLEOQAAJEKcAwBAIsQ5 AAAkQpwDAEAi
xDkAACRCnAMAQCLEOQAAJEKcAwBAIsQ5AAAkQpwDAEAixDkAACRCnAMAQCLE OQAAJEKcAwBA
IsQ5AAAkQpwDAEAixDkAACRCnAMAQCLEOQAAJEKcAwBAIsQ5AAAkQpwDAEAi xDkAACRCnAMA
QCLEOQAAJEKcAwBAIsQ5AAAkYnCzF5AVs2bNqvpr29vba7gSAADyqlAsFovN XkRKBhLhlRLt
AAB01fJx3sgY3xmxDgDQ2lpyrCWlIO/U3t7ebV1CHQCg9bTUznmKUV5O11AX 6QAArSP3cZ6V
IO8PoQ4AkG+5jfM8RXlPIh0AIJ9yN3Oe5yiPMPICAJBnudk5z3uU90agAwDk Ry7uENrKYT5r
1qyW/fkBAPIm0zvnovQ1Rl0AAPIhszvnwvwNs2bNej3K/bsAAGRXJnfOBWh5 XQPdDjoAQPZk
Ks5Fef8YcwEAyKZBkydPnjFv3ryYPHlys9fSJ2Hef/PmzYv29vaYN29eZOG5 BQDgNW1ZmFVO
eW2pMocOAJA93cZaUhyFEJYDYw4dACA7ys6cpxLpwrw2BDoAQDb0eUJoMyNd mNeWQAcASF+f
1zlv1syyMK+9rm+0/PsCAKSp35dSbNQuunCsLzvoAADpqvg65/WMdGHeGK6D DgCQpqpvQlTr
uBPmjSXQAQDS0+fMeV9cQzv7RDkAQFqq3jnvaqA7sAK/OcyfAwCkpSZx3qma SBfmzSXQAQDS
UdM479TfSBfmaTB/DgCQhqpnzvtiHj17RDkAQPPVZee8q952ZIV7Woy3AAA0 X112zrtqb29/
fWyiM8iFeXo8JwAAzVf3nfOeRGC67J4DADRX3XfOyY6ub5y8iQIAaDxxTgm7 5gAAzdHQOLcb
m76uJ/B6vgAAGsvOOQAAJKJhcW4XNjvMngMANIedc3pl9hwAoLHEOQAAJKIh cW40InucGAoA
0Hh2zgEAIBF1j3O7rtln9xwAoDHsnNMrQQ4A0FjiHAAAElHXOLfzmh9GWwAA 6s/OOX0S5AAA
jSPOAQAgEeIcAAASUbc4Nw6RP+bOAQDqy845OyXIAQAaQ5wDAEAixDkAACRC nAMAQCLEOQAA
JKIuce4EwvxyxRYAgPqxcw4AAIkQ5wAAkAhxDgAAiRDnAACQCHEOAACJEOcA AJAIcQ4AAIkQ
5wAAkAhxDgAAiRDnAACQCHEOAACJEOcAAJAIcQ4AAIkQ5wAAkIi6xHl7e3s9 HpYEzJo1y/ML
AFAnds4BACAR4pydslMOANAY4hwAABIhzgEAIBHiHAAAElG3ODennA9dn0dX agEAqC875wAA
kAhxDgAAiah7nBuDyC7PHQBAY9U1ztvb22PWrFn1/BY0iHlzAID6M9YCAACJ aEic23HNHs8Z
AEDjNWTm3GhLthlpAQBoDGMtAACQCGMtlHDjIQCA5rBzDgAAiRDndNNz1xwA gMZpWJwbjcgm
zxsAQOM0fOdc7KXLcwMA0FyFYrFYbOQ3NCqRts5AdyIoAEDjmTknIrpHuTdQ AADN0bSxFruy
6ej6nHheAACaZ3Azvqm7hqar6zhL53Mk2AEAGqOpYy2ir/n6eg46d9KNugAA NEbDTwjtqnOX
Vvg1R88w39lJoHbSAQDqq+knhLoqSHOUC/P+fo03UwAA9WGshdf15/kw6gIA UD9NHWvpZLyl
sSodZ+mLURcAgNpJIs4jBHqj1DLMez5OuccHAKD/mj5z3pX58/qqZs680sf2 5goAoHrJ7JxH
dN99FXm11VuY1+PNkF10AIDqJLVz3jXmhF3t9PZvWa9/YyeNAgBUJ6md807l 7lJJdcoFeKPH
h+ykAwD0T1I75526jrUIuuqlEOZd1+GNFgBA35LcOe9kB716qYR5uTVEeNMF AFBO0nEeIdCr
kWqYdyXSAQBKJR/nEaUhJ9LL6y3Ke/tYClJfHwBAIyU5c95TzygXcqWyGOYR 3nABAHSViZ3z
TnbQy8tqmPeUxTUDANRSpuK8U8/56VaN9N4iNrX58kqJdACgVWUyziPsoudl t7wveft5AAB2
JrNxHlE+3vIe6X3tlvf18azK688FAFBOpuO8UytEeqtFeU+t8nMCAK0tF3He KY+R3upR3lOr
/twAQGvIVZxH9B1vWQn1nYWnQPVvAADkU+7ivFPXEM9CqPc3yPvzua1CoAMA eZPbOO/Un6ht
Vqj3JypF+c6JdAAgL3If5131N+LqFeuVxKPgrJx/MwAg61oqzjuluhud6rqy RqQDAFnVknHe
Vc9d8kYGXTO/d955owMAZFHLx3lPvY20DCTw6vGY9I9ddAAgS8R5Pw1kDl0Y Np9IBwCyQJzT
UkQ6AJAycU5LEukAQIramr0AaIbOKE/tZlQAQGuzc07Ls4sOAKRCnMP/EukA QLOJc+hBpAMA
zWLmHHowjw4ANIudc+iDXXQAoJHEOfSDSAcAGkGcQwVEOgBQT2bOoQLm0QGA erJzDlWyiw4A
1Jo4hwES6QBArYhzqBGRDgAMlJlzqBHz6ADAQNk5hzqwiw4AVEOcQx2JdACg EuIcGkCkAwD9
YeYcGsA8OgDQH3bOocHytos+a9as3PwsANBs4hyaJA+R3vUvAVn+OQAgFeIc mizLkd5zTCeL
PwMApMTMOTRZVufRs7ZeAMgCO+eQkCztovcW51lYOwCkSpxDglKP9J3tmqe6 bgBInTiHhKUa
6f0ZaUltzQCQBeIcEpfaFVEqmTVPYb0AkCVOCIXEtbe3Z/akUQCgMnbOIWOa OepSzZsDu+cA
0H/iHDKq0ZE+kF17gQ4A/SPOIeMaFekDHakR6ACwc2bOIeMaMY9u1h0AGsPO OeRIvXbRaxXn
ds8BoG/iHHKolpFe611zgQ4AvRPnkGO1iPR6jLQIdAAoz8w55NhA59HNmgNA Y9k5hxZRzS56
PePc7jkAlBLn0GL6G+mN2DUX6ADQnTiHFrWzSG/USItAB4A3mDmHFtXXPHoj Z83NtQPAGwY3
ewFA8/QM9Pb2drEMAE1krAV4XTPD3HgLABhrARJhxx4AxDmQEIEOQKsT50BE CGMASIE4B5Li
TQIArUycA8kFcWrrAYBGEedAkgQ6AK1InEOLE8EAkA5xDiTLGwcAWo04hxaW hfjNwhoBoFbE
ObSoLEVvltYKAAMhzoFMEOgAtAJxDi1I6AJAmsQ5kBneVACQd+IcWkzWAzfr 6weAvohzIHME
OgB5Jc6hhYhaAEibOAcyyRsNAPJInEOLyGPM5vFnAqC1iXMg0wQ6AHkizqEF CFgAyAZxDjnX
CmHeCj8jAK1BnAO5INAByINCsVgsNnsRQOPkPWLb29ubvQQAqJo4B7rJQ7wL dACyanCzFwCk
ZWdhm4d4B4BU2TkHaiqVeLd7DkAWiXOgoRoZ7wIdgKwR50BSah3vAh2ALDFz DiTFzDsArczO
OZAr5eLd7jkAWSHOAQAgEe4QCgAAiRDnAACQCCeEAiSmUCg0ewkALSeVSW9x DtAkvUV4sTij
sQsBoI/X5MZGuxNCARqk5wu/CAdI3WVlXrvrm87iHKCOur6oi3GALLssInq+ rtc+o8U5QB2I
coA8u6xukS7OAWqo88VakAO0gu676bXIanEOUCOFQkGUA7Scy17/X6/9HhhY WotzgAGyWw5A
rXbR3YQIYACEOQCvuTwi3ojyau9ZYeccoErGWAAoNbAxFzvnAFUQ5gCUd/nr /6tYLFa8gy7O
AQCgpi7f+af0QpwDVMiuOQD9VenuuTgHAICaq273XJwDVMCuOQCVquSkUHEO AACJEOcAAJAI
cQ4AAIkQ5wAAkAhxDgAAiRDnAACQCHEOAACJEOcAAJAIcQ4AAIkQ5wAAkAhx DgAAiRDnAACQ
CHEOAACJEOcAAJAIcQ4AAIkQ5wAAkAhxDgAAiRDnAACQCHEOAACJEOcAAJAI cQ4AAIkQ5wAA
kAhxDgAAiRDnAACQCHEOAACJEOcAAJAIcQ4AAIkQ5wAAkAhxDgAAiRDnAACQ CHEOAACJEOcA
AJAIcQ4AAIkQ5wAAkAhxDgAAiRDnAACQCHEOAACJEOcAAJAIcQ4AAIkQ5wAA kAhxDgAAiRDn
AACQCHEOAACJEOcAAJAIcQ4AAIkQ5wAAkAhxDgAAiRDnAACQCHEOAACJEOcA AJAIcQ4AAIkQ
5wAAkAhxDgAAiRDnAACQCHEOAACJEOcAAJAIcQ4AAIkQ5wAAkAhxDgAAiRDn AACQCHEOAACJ
GNzsBQBAK5k48ZqSY7/73V/F6NG7NmE1QGrEOQA00KJFq0uOdXQUm7ASIEXG WgAAIBF2zgEg
IhYuXB333bc4HntsacyfvzJefHFdLF++PjZt2h6bN2+PtrZCjBgxJEaNGh77 7rtrjBs3Mg46
aM+YNGmfmDx5dBx55H4xatTwmq+rUJhRcmzp0s/F/vvvVvPvlWf//u+Pxic+ 8d9N+d577DE8
1qz5fL8+9/HHl8Utt/whHnjg+XjqqVWxZs3mGD58cIwbNzKmTh0bZ511eJx7 7qQYNkzC5ZVn
FoCW9fzza+P66x+Lm256MhYuLB036aqjoxjr1m2Jdeu2xJIla2POnNLPmThx rzjxxDfFSSeN
j0996vg6rZo8WrhwdfzN3/wq7rhjYcnHNmzYGk8/vSqefnpV3HLLH2LMmJFx 5ZXviQsuOCoK
hUITVks9iXMAWs7Spevi8st/G9dd92hs376jZo+7cOHqWLhwdfzsZ/PFOf12 661/igsu+Gls
3LitX5+/dOm6uPDCW+NXv1oQ119/duyyy5A6r5BGEucAtJSZM+fGxRffFq+8 sqnZS4GYNeuP
8eEP/zh27Cg9KXjXXYfG+PF7xNq1m+Oll9aVfHzmzLmxZs3m+PnPz4+hQwc1 Yrk0gDgHoCUU
i8X40pfuiSuuuK/Xz2lrK8Sf/dmEeNe7Dopjj90/DjxwVIwaNTyGDRscmzZt i1WrNsXzz6+N
BQtWxdy5L8fDD78Uf/rTigb+FHTq6NgRixa9EsuXr49ly9bH8uUbYtmy9fGV r5xS9vMvuOCo
OOecSRV9j29/e3bMmHFvyfEVK/5fRY/T2+TJ448vi49+9NaSMJ84ca+4+upT 48wzD4vBg1+7
dsfTT6+KGTPujVtu+UO3z73jjoXxuc/dGddcc3pFayJd4hyAlnDppXfH1772 QNmPDRs2OD77
2RPjs599a4wdO7LXx5gwYVQcd9yYbsdWrdoY99//fNx11zNx++0L4plnXqnp upcu/VzJsdGj
R9T0e2TRihUb4/DDv1VyvLc4Hz58cAwfXln27Lrr0LLH99ln4P/+27Z1xEc/ +tPYsmV7t+Mn
nDAu7rzzoyUnFx922N5x003vjylT9o0vfvHubh/71rf+J84++/B497sPHvC6 aD5xDkDu/eAH
j/ca5lOnjo0f/eiDccghe1X12HvvPSLOOWdSnHPOpCgWi/HUU6vizjsXDWS5 3bgqSz5973tz
Yu7cl7sdGzVqeNx663m9XvWnUCjEF74wLZ58cnn86Edzu33sb//2jnjiiU9H W5sTRLPOdc4B
yLXnnlsTn/nMr8p+7LTTJsb99/9l1WHeU6FQiEmT9olLLjmxJo9HPm3b1hFX XfVgyfEvfenk
GDdu9z6/tlAoxD/902klJ4HOnfty/Pzn82u6TppDnAOQa5///F2xfv3WkuNH H71//OQnH3Kl
CxruttsWxJIla7sd2333YfHJT07t19ePHTsyLrjgqJLj3/3uIzVZH80lzgHI rT/+8eWSP/9H
RAwe3BY33fT+XmeKoZ5uvPHJkmMf+MCbY7fd+v/f44UXHl1y7Ne/fiaWL18/ oLXRfGbOAcit
a68tv5P4yU9OjcmT923waqpTqzuEbtiwNW67bUH8+teLYs6cpbF48Zp49dUt USgUYo89hsWB
B46K448fG2eccWi8730TY8iQyi7N1991Llu2Pm688cm4/fYFMXfuy7F69aYY NKgtJkzYI046
aUJ8+tPHx9SpY8t+jzvuWBinn35jxev4+tdPjc997u39/lnqadu2jrLnJJx5 5qEVPc7b3vam
2HPPXbpdErRYLMYddyyMj33smAGvk+YR5wDkUkfHjviv//pj2Y/93d+lEWqN sGHD1rjqqgfj
mmv+J9as2Vz2c1au3BgrV26MRx55Kb773UfigAP2iCuuOKWmd6Dctq0jrrji /rjqqgdj06bu
N9vZvn3H63fAvO66R2P69Gnxj//47lze/XLOnKWxbt2WkuMnnTShoscZNKgt pk0bH7/4xVPd
jt9zz3PiPOOMtQCQS7NnvxgrVmwoOT5t2vg4+OA9m7Cixnv00aVx5JHXxt// /W97DfNylixZ
GxdeeGtccMFPY+vWjgGvY+XKjXHyyf8Zl19+b0mYl3PllQ/ElVeWnjCZB7Nn v1hybOzYkbHv
vrtW/FjHHrt/ybGHHy59fLLFzjkAufTQQ0vKHj/jjMrGB7Lq/vsXx+mn3xQb NpSeDLvvvrvG
cceNiX32GRHFYsTixWti9uwXS0L85pv/EDt2FOPmmz9Q9S72ypUb46STro/5 81dW9HUzZtwb
H/vY0TFmzBvXnR85cmgcffRrQbptW0fMm1d6A6jOj3eV0nXh//jHl0uOHX74 PlU9Vrmve+qp
VbFtW0fFY0mkQ5wDkEtz5iwte/ztbz+gwStpvGeffSXOPntmSZgfc8z+cfXV p8YppxxUEttr
1myOq656ML72tQeiWHzjjpUzZ86N9773kPj4x4+teB2bN2+P886b1S3Mhw8f HOecMyne9rYD
Yq+9dokXXng1rrvu0Vi4cHW3r92yZXvccMMTMX36tNePveMd4+Pxxy+KiNdm 18eMubrke3Z+
PFU9f86IiAkT9qjqscp9XUfHjnjuuTVx6KF7V/WYNJ84ByCXertT55Qp2TgR tFrFYjH+6q/+
u9uJghERp5xyUPziFx+JESPKXzpy1Kjh8dWvvjvGjRtZcl34Sy+9O84/f0rF l5285JLbu41x
/OVfHhtXXvmeGD26+wjHRRcdH0ce+Z144YVXux2/++5nu8V5Hrz00rqSY/vt V92Npno7KXjp
0vXiPMPMnAOQSz1DLyJixIghsddeuzRhNY1z220L4p57nu12bPfdh8Utt3yw 1zDv6uKLT4i3
vGVct2PLl6+PH/2o/Mm1fek8WbGtrRDXXXd2XH/92SVhHvHaG4NyO/Plxlay bsWKjSXHersj
6M709nXlzrUgO8Q5ALm0dm3pCZD77DMil1cA6eqf//n3JccuvviEfp9wWCgU yt4MZ9asyuO8
0w03nLvTsZiebwgi8hmZ5c4B6M+bpnJ6u07/hg07P+mWdIlzAHJp06btJcfy fjfQl1/eEL/5
zbMlx887b0pFj/POdx5Ycuy++xbHjh3F0k/eiX/4h1Piz/+89G6WPXU98bNT La4Uk5otW0p/
psGDq8uxIUPKf92WLaX/7ZMd4hyAXOp6UmOr+M1vni35uUeNGh5HH71fRY9z 0EF7xtCh3a/2
sX791l7n+Htz+umHxqWXntSvz91113y/cerUiD/c5P2vQ3knzgHIpXK75Bs3 5vvP/Y8+WnqF
miOOGF1xrLW1FcrOhj/33JqKHueaa06Ptrb+fe/+fl7W9XzTE/HaZSGrsW3b jrLHhw1zGcUs
c7UWAHJp5MihJfO9L7+8IYrFYm53Fp99tnRn+/e/fyGGD/9KxY9VbjSi0hnw 3XYrPxNdTl6f
k552221obN7c/d+22jeN5ebXO78H2SXOAcilN71p91i2bH23Y1u2bP/f62OX zjfnwcqVpVcC
KRaLNZtBLjfHT2VGj9615Hl65ZX+3721q1df3dLr9yC7jLUAkEsHHjiq7PHH HlvW4JU0TrmT
DWupRTa362rcuNI3hj3fRPbXyy+X/0vG2LH5fPPZKuycA5BLxx47Jn7843kl x++559k444xD
m7Ci+is3a3zIIXvFW9/6ppo8frW3mecNEyfuFXfd9Uy3Y4sXVzbL32nJktJr +Q8e3Bbjx1d3
x1HSIM4ByKXegvTWW+fHVVe9N5czznvuWXqDpSlT9o0bb3x/E1ZDOeXuUPvU U6uqeqwFC0q/
7vDD96n60oykwbMHQC5Nmza+7IlxixatjrvvLr0WeB5MmFC6Y5rHu2xmWbmb LS1fvj6WLl1X
8WM98cTykmMnnDC2qnWRDnEOQC4NHToozjlnUtmPzZhxby6vg37MMfuXHFuw YFWsWlV6oijN
ceyxY2KPPYaXHL/vvsUVPU6xWIyHHlpScrzcDaTIFnEOQG5ddNHxZY8/+ODz cd11jzV4NfV3
8skHlj1+220LGrsQejV4cFucdtohJcd/+cunK3qc+fNXxpIla7sdKxQK8b73 TRzQ+mg+cQ5A
br397QfEu951UNmPXXLJ7fHwwy82eEX1deCBo2Lq1NKxhm9/e3Yu/1JQTkdH +RvzpOSCC44q
Ofazn83v9dKI5dx88x9Kjr3nPQfHfvvtNqC10XziHIDcKhQKcfXVp8agQaW/ 7jZt2hannvrD
sqMBA7V48ZrYsaM5MVzurwWzZ78Y//EfjzdhNfUzYkTpHWAjsnEt9ve9b2JM mND9Up/r12+N
7373kX59/fr1W+N735tTcry3vxSRLeIcgFw77rgxcdllJ5f92Jo1m+Od7/zP uOqqB6u+hXqn
YrEYDz74fJx//o/jkEOuaVqcX3jh0TFx4l4lxy+++La4885FTVhRfey229Bo ayu94k611wxv
pCFDBsX06e8oOf7Vr94fL7xQennEnmbMuLfkbq1vfvPoXs+xIFvEOQC598Uv /ll8+MNTyn5s
27aOmD791zF58nfi2msfjlde2dTvxy0Wi/HEE8vi8svvjSOO+HZMm3Z9zJw5 t6mjFUOHDorv
fe//llwqcsuW7XHmmTdV9Uako2NH3Hff4njxxZ2HY6O0tRVi0qTS667Pnp2N UaVPfGJqHHnk
ft2OrV27Oc49d2af/w3edNOT8Y1vPFRy/F/+5fSyb1bIHtc5ByD32toK8YMf nBttbYWys7oR
r13V5OKLb4tLLrk93vGO8XHiiePisMP2jjFjRsaIEUOira0QGzZsjWXL1sez z66JJ59cHr/7
3ZJe79LYTKecclB89avvji984a5ux7dv3xHTp/86vvOdh+PjHz82TjvtkDjq qP1il126j4is
WbM55s9fGXPmvBT33/983HXXM7Fq1ca4//6Px7hxuzfyR+nTtGnjSy4VecUV 98U733ng63fJ
3LGjmGS0Dh7cFjfccG6ceOL3Y+vWN94sPfLIS3HCCd+Pb37ztDj99ENfv2b5 kiVr4+tffyi+
9a3/KXmsv/7rt8R73nNww9ZOfYlzAFrC0KGD4oc/fH8cddR+8aUv3dPr7vH2 7Tvit799Ln77
2+cau8Aamz79HbF1a0dcdtk9JR9bvHhNXHbZPa9/bO+9R8SIEUOio2NHrF27 JTZs2Nro5Vbl
L/7imPi3f+s+ez1v3ooYP/6bccghe0ZbWyEOO2zv+PnPz2/SCvt2zDH7xw03 nBvnn/+Tbifs
Llq0Os4665YYOXJYHHDA7rFu3daSK7N0Ou20ifGNb5zaqCXTAMZaAGgZbW2F mD59Wjz22Kfi
zDMPq8v3mDp1bMyc+cEYNKi5u7WFQiG+/OWT4yc/OS/23ntEn5+7atXGWLJk bbz00rrMhHlE
xNvedkB85CNHlhzv6NgRTz+9KubPXxlbtgzsXIJ6O++8KTFz5gdj+PDS/dJ1 67bEvHkreg3z
D394Stx663kxbJi91jwR5wC0nMmT941f/vIjMWfOp+Kii47fabzuzLhxu8dn PvOWmD37E/Hw
w5+I886bUjLz3Szvf/8RsXDhJXHppSdV/XOOGjU8PvCBN8f48aV3IG2273// rLq90WqUD31o
cjz66Kf6fQOhceN2jxtuODduvvkDJSNJZJ+3WgC0rOOOGxPXXvt/4l//9Yx4 5JGX4qGHlsTj
jy+LRYteiRdeeDVWr94Umzdvj23bOmLQoLbYbbehsc8+I+KAA3aPww7bO447 bkxMmzY+3vzm
0cnEeDmjRg2PK654d3z5yyfHb37zbNx11zMxZ87SeOaZV2Llyo2xadO2aGsr xMiRw2L06BEx
YcKoOPzwveOoo/aLt771TTFlyr5lL0eZghEjhsQvfnF+/PSnf4of/vDJmD37 xVixYkO0tRXi
4IP3zMws9hFHjI577vmL+N3vlsTMmXPjgQeej4ULV8f69VtjxIghccABe8TU qWPirLMOj7PP
nhRDhw5q9pKpk0KxVe5KAFADhUIhisUZzV4GAJlwWcVfkebbYAAAaEHiHAAA EiHOAQAgEeIc
AAASIc4BACAR4hwAABIhzgEAIBHiHAAAEiHOAQAgEeIcAAASIc4BACAR4hwA ABIhzgEAIBHi
HAAAEiHOAQAgEeIcAAASIc4BACAR4hwAABIhzgEAIBHiHAAAEiHOAQAgEeIc AAASIc4BACAR
4hwAABIhzgEAIBHiHAAAEiHOAQAgEeIcAAASIc4BACAR4hwAABIhzgEAIBHi HAAAEiHOAQAg
EeIcAAASIc4BACAR4hwAABIhzgEAIBHiHAAAEiHUT8yxAAACu0lEQVTOAQAg EeIcAAASIc4B
ACAR4hwAABIhzgEAIBHiHAAAEiHOAQAgEeIcAAASIc4BACAR4hwAABIhzgEA IBHiHAAAEiHO
AQAgEeIcAAASIc4BACAR4hwAABIhzgEAIBHiHAAAEiHOAQAgEeIcAAASIc4B ACAR4hwAABIh
zgEAIBHiHAAAEjG42QsAAJqjcHmzV7BzxcuavQJoLDvnAACQCHEOAACJEOcA AJAIcQ4AAIkQ
5wAVc4YaADtT3e8KcQ4AAIkQ5wAVKBaLUSgUwu45AL3r/jvitd8b/SPOAaom 0AHoaWC/G8Q5
QIXe2D2PEOgAvKH0d0KhUIhisdjvRxDnAAMm0AGoze+CwTV5FIAW07l7/sZu SOeLcgbuhw5A
DfUe5ZXumkfYOQeoWmegdz/Rxy46QOso/5rf+buh0jCPsHMOMCBdA90uOkCr 6Hu3PCKqCvMI
cQ4wYJ0vwKW7JF1fvIU6QLbt/C+j1e6WdyXOAWqk61VcSl+chTpA9vRvVHGg u+VdiXOAGuq6
i97z2Bt6vtiLdYA09P+8ob5f56snzgHqoGuk73xHxUmkNEsW3hj6/wdpqVeU dxLnAHXU9YW7
5+2b6/GiDkBtNfq1W5wDNEjPF/SeL/i9fR4A9ZfKa7I4B2iS3l7we/sFATU3 Y0azV7BT/v9A
o6SyMSLOARKTyi8I8q9wefoz5/7/QKtxh1AAAEiEOAcAgESIcwAASIQ4BwCA RIhzAABIhDgH
AIBEiHMAAEiEOAcAgESIcwAASIQ4BwCARIhzAABIhDgHAIBEiHMAAEiEOAcA gESIcwAASIQ4
BwCARIhzAABIhDgHAIBEiHMAAEhEoVgsFpu9CAAAwM45AAAkQ5wDAEAixDkA ACRCnAMAQCLE
OQAAJEKcAwBAIsQ5AAAkQpwDAEAixDkAACRCnAMAQCL+P53iS/tBHbhSAAAA AElFTkSuQmCC
--------------020800070202060304050505--
|
|
|
Re: Rounding errors in figure drawing [message #145949 is a reply to message #145925] |
Mon, 02 August 2004 16:09 |
Pratik Shah Messages: 1077 Registered: July 2009 |
Senior Member |
|
|
Open a bug report (and please provide a snippet, if possible). This works
fine at all zoom levels other than 400%, right?
"Bradley Schmerl" <schmerl@cs.cmu.edu> wrote in message
news:cellci$sfq$1@eclipse.org...
> Hi:
>
> I'm having problems with rounding errors in figure painting when zooming
> (see the attached shot). I am passing in the same rectangle to
> outlineShape as I am to fillShape, but the outline seems to be bigger
> than the inside when zooming in (in the screenshot, the zoom level is
> 400%). It only seems to be happening on figures that have curves in them
> (circles, rounded rectangles).
>
> In fillShape, I am using:
>
> g.fillOval (r) and g.fillRoundedRectangle (r, r.width/6, r.height/6)
>
> In outlineShap, I am using:
>
> g.drawOval (r) and g.drawRoundedRectangle (r, r.width/6, r.height/6)
>
> Has anyone experienced this problem? If so, and I am doing something
> wrong, could you tell me the right way. If there is a workaround, I'd
> like to know that too.
>
> Thanks,
> Bradley.
>
------------------------------------------------------------ ----------------
----
|
|
| |
Re: Rounding errors in figure drawing [message #146008 is a reply to message #145925] |
Mon, 02 August 2004 19:05 |
Eclipse User |
|
|
|
Originally posted by: none.us.ibm.com
When doing drawRectangle() and fillRectangle(), "fills" needs to be 1 pixel
larger than "draws". This is because fill is exclusive of the bottom and
right edges, while draw is inclusive of all edges. So once you use 1-pixel
larger, you will be tucking the fill underneath the draw, and zoom will work
correctly. Ovals should work the same too.
roundedRectangle is another story. Different arcs may be used and they may
not scale perfectly.
The logic example uses many of the graphics calls and works well with zoom.
"Bradley Schmerl" <schmerl@cs.cmu.edu> wrote in message
news:cellci$sfq$1@eclipse.org...
> Hi:
>
> I'm having problems with rounding errors in figure painting when zooming
> (see the attached shot). I am passing in the same rectangle to
> outlineShape as I am to fillShape, but the outline seems to be bigger
> than the inside when zooming in (in the screenshot, the zoom level is
> 400%). It only seems to be happening on figures that have curves in them
> (circles, rounded rectangles).
>
> In fillShape, I am using:
>
> g.fillOval (r) and g.fillRoundedRectangle (r, r.width/6, r.height/6)
>
> In outlineShap, I am using:
>
> g.drawOval (r) and g.drawRoundedRectangle (r, r.width/6, r.height/6)
>
> Has anyone experienced this problem? If so, and I am doing something
> wrong, could you tell me the right way. If there is a workaround, I'd
> like to know that too.
>
> Thanks,
> Bradley.
>
------------------------------------------------------------ ----------------
----
|
|
| |
Re: Rounding errors in figure drawing [message #146254 is a reply to message #146217] |
Tue, 03 August 2004 13:57 |
Eclipse User |
|
|
|
Originally posted by: none.us.ibm.com
You'll have to post your code. FillPolyong is used in the logic example and
it work ok.
"Holger Herzog" <holger.herzog@arcway.com> wrote in message
news:cenvij$6t7$1@eclipse.org...
> Hi!
>
> Randy Hudson wrote:
> > When doing drawRectangle() and fillRectangle(), "fills" needs to be 1
> > pixel larger than "draws". This is because fill is exclusive of the
> > bottom and right edges, while draw is inclusive of all edges. So once
> > you use 1-pixel larger, you will be tucking the fill underneath the
> > draw, and zoom will work correctly. Ovals should work the same too.
>
> I'm using:
>
> graphics.fillPolygon() and
> graphics.drawPolyline()
>
> I have similar effectes: the drawings made by fillPolygon() are one
> pixel smaller (at the right und at the bottom) as that ones made by
> drawPolyline().
>
> Of course, I could add 1 pixel to the points at the right and at the
> bottom. But who knowns what points these are? A polygon can get quite
> complex ...
>
>
> Regards,
>
> Holger
|
|
|
Re: Rounding errors in figure drawing [message #146798 is a reply to message #146254] |
Sat, 07 August 2004 22:58 |
Bradley Schmerl Messages: 26 Registered: July 2009 |
Junior Member |
|
|
For me, fillPolygon and drawPolygon zoom ok. fill/drawRectangle,
fill/drawOval, and fill/drawRoundedRectangle do not. Adding one pixel in
each direction to these methods works for me.
Bradley.
Randy Hudson wrote:
> You'll have to post your code. FillPolyong is used in the logic example and
> it work ok.
>
> "Holger Herzog" <holger.herzog@arcway.com> wrote in message
> news:cenvij$6t7$1@eclipse.org...
>
>>Hi!
>>
>>Randy Hudson wrote:
>> > When doing drawRectangle() and fillRectangle(), "fills" needs to be 1
>> > pixel larger than "draws". This is because fill is exclusive of the
>> > bottom and right edges, while draw is inclusive of all edges. So once
>> > you use 1-pixel larger, you will be tucking the fill underneath the
>> > draw, and zoom will work correctly. Ovals should work the same too.
>>
>>I'm using:
>>
>>graphics.fillPolygon() and
>>graphics.drawPolyline()
>>
>>I have similar effectes: the drawings made by fillPolygon() are one
>>pixel smaller (at the right und at the bottom) as that ones made by
>>drawPolyline().
>>
>>Of course, I could add 1 pixel to the points at the right and at the
>>bottom. But who knowns what points these are? A polygon can get quite
>>complex ...
>>
>>
>>Regards,
>>
>>Holger
>
>
>
|
|
|
Re: Rounding errors in figure drawing [message #146943 is a reply to message #146798] |
Mon, 09 August 2004 18:06 |
Eclipse User |
|
|
|
Originally posted by: none.us.ibm.com
"Bradley Schmerl" <schmerl@cs.cmu.edu> wrote in message
news:cf3mnb$j52$1@eclipse.org...
> For me, fillPolygon and drawPolygon zoom ok. fill/drawRectangle,
> fill/drawOval, and fill/drawRoundedRectangle do not. Adding one pixel in
> each direction to these methods works for me.
>
> Bradley.
So that's what I was saying about fills. It need to have one pixel more to
be the same size. This is true at 100%, so it is true at 300% also.
|
|
|
Re: Rounding errors in figure drawing [message #156985 is a reply to message #146943] |
Fri, 05 November 2004 13:37 |
Marion Schmid Messages: 35 Registered: July 2009 |
Member |
|
|
Hello all,
I think I have a similar problem, but it might also be a problem of coding,
don't know...
I added three screenshot to show you the problem I have with zooming and a
shape, that's done with graphics.drawLine / drawPolygon(..) and
fillPolygon().
The screenshots I added are at zoom levels 150, 200,210. I also had problems
with 100, that's why I think it's maybe my coding where the problem is. But
maybe someone of you can tell me why... ??
As you will see in outlineShape(), I tried with drawPolygon and with
drawLine - both with the same results.
==== MyShape extends Shape =====
protected void fillShape(Graphics g) {
double insetProportion = 0.27;
Rectangle r = getBounds().getCopy().expand(1,1); //translate(-1,
0).shrink((lineWidth-1)/2,(lineWidth-1)/2);
double cornerInsetX = r.width * insetProportion;
double cornerInsetY = r.height/2;
PrecisionPoint pp = new PrecisionPoint(r.getLeft().x + cornerInsetX,
r.getTop().y+cornerInsetY);
PointList pl = new PointList();
pl.addPoint(r.getTopLeft());
pl.addPoint(r.getTopRight());
pl.addPoint(r.getBottomRight());
pl.addPoint(r.getBottomLeft());
pl.addPoint(pp);
g.fillPolygon(pl);
}
protected void outlineShape(Graphics g) {
Rectangle r = getBounds().getCopy();
double cornerInsetX = r.width * insetProportion;
double cornerInsetY = r.height/2;
PrecisionPoint pp = new PrecisionPoint(r.getLeft().x + cornerInsetX,
r.getTop().y+cornerInsetY);
// ### polygon version ###
PointList pl = new PointList();
pl.addPoint(r.getTopLeft());
pl.addPoint(r.getTopRight());
pl.addPoint(r.getBottomRight());
pl.addPoint(r.getBottomLeft());
pl.addPoint(pp);
g.drawPolygon(pl);
// ### drawLine version ### /**
g.drawLine(r.getTopLeft(), r.getTopRight());
g.drawLine(r.getBottomRight(), r.getTopRight());
g.drawLine(r.getBottomLeft(), r.getBottomRight());
g.drawLine(r.getBottomLeft(), pp);
g.drawLine(pp, r.getTopLeft());
*/
}
====== MyEditPart =========
protected IFigure createFigure() {
MyShape ppfigure = new MyShape();
ppfigure.setLayoutManager(new BorderLayout());
ppfigure.setOpaque(false);
ppfigure.setBackgroundColor(ColorConstants.VisualComposerCol ors.COLOR_RED_AC
TIVE);
ppfigure.setForegroundColor(ColorConstants.VisualComposerCol ors.COLOR_RED_BO
RDER);
return ppfigure;
}
"Randy Hudson" <none@us.ibm.com> wrote in message
news:cf8ea5$22m$1@eclipse.org...
> "Bradley Schmerl" <schmerl@cs.cmu.edu> wrote in message
> news:cf3mnb$j52$1@eclipse.org...
> > For me, fillPolygon and drawPolygon zoom ok. fill/drawRectangle,
> > fill/drawOval, and fill/drawRoundedRectangle do not. Adding one pixel in
> > each direction to these methods works for me.
> >
> > Bradley.
>
> So that's what I was saying about fills. It need to have one pixel more
to
> be the same size. This is true at 100%, so it is true at 300% also.
>
>
|
|
|
Re: Rounding errors in figure drawing -> Sorry, my mistake! [message #156994 is a reply to message #156985] |
Fri, 05 November 2004 13:53 |
Marion Schmid Messages: 35 Registered: July 2009 |
Member |
|
|
Sorry!
I want to cancel my previous question!
I just found my problem in fillShape/outlineShape:
For the reference rectangle in fillShape() and outlineShape I now use
Rectangle r = getBounds().getCopy().shrink((lineWidth-1/2),
(lineWidth-1/2));
and everything works, all zoom steps from 10% to 1000%
Best regards,
Marion
"Marion Schmid" <marion.schmid@sap.com> wrote in message
news:cmfvm1$24p$1@eclipse.org...
> Hello all,
>
> I think I have a similar problem, but it might also be a problem of
coding,
> don't know...
> I added three screenshot to show you the problem I have with zooming and a
> shape, that's done with graphics.drawLine / drawPolygon(..) and
> fillPolygon().
>
> The screenshots I added are at zoom levels 150, 200,210. I also had
problems
> with 100, that's why I think it's maybe my coding where the problem is.
But
> maybe someone of you can tell me why... ??
>
> As you will see in outlineShape(), I tried with drawPolygon and with
> drawLine - both with the same results.
>
> ==== MyShape extends Shape =====
> protected void fillShape(Graphics g) {
> double insetProportion = 0.27;
> Rectangle r = getBounds().getCopy().expand(1,1); //translate(-1,
> 0).shrink((lineWidth-1)/2,(lineWidth-1)/2);
> double cornerInsetX = r.width * insetProportion;
> double cornerInsetY = r.height/2;
> PrecisionPoint pp = new PrecisionPoint(r.getLeft().x + cornerInsetX,
> r.getTop().y+cornerInsetY);
>
> PointList pl = new PointList();
> pl.addPoint(r.getTopLeft());
>
> pl.addPoint(r.getTopRight());
> pl.addPoint(r.getBottomRight());
> pl.addPoint(r.getBottomLeft());
> pl.addPoint(pp);
>
> g.fillPolygon(pl);
> }
>
> protected void outlineShape(Graphics g) {
> Rectangle r = getBounds().getCopy();
>
> double cornerInsetX = r.width * insetProportion;
> double cornerInsetY = r.height/2;
>
> PrecisionPoint pp = new PrecisionPoint(r.getLeft().x + cornerInsetX,
> r.getTop().y+cornerInsetY);
>
> // ### polygon version ###
> PointList pl = new PointList();
> pl.addPoint(r.getTopLeft());
>
> pl.addPoint(r.getTopRight());
> pl.addPoint(r.getBottomRight());
> pl.addPoint(r.getBottomLeft());
> pl.addPoint(pp);
>
> g.drawPolygon(pl);
>
> // ### drawLine version ### /**
> g.drawLine(r.getTopLeft(), r.getTopRight());
> g.drawLine(r.getBottomRight(), r.getTopRight());
> g.drawLine(r.getBottomLeft(), r.getBottomRight());
> g.drawLine(r.getBottomLeft(), pp);
> g.drawLine(pp, r.getTopLeft());
> */
> }
>
>
> ====== MyEditPart =========
> protected IFigure createFigure() {
>
> MyShape ppfigure = new MyShape();
> ppfigure.setLayoutManager(new BorderLayout());
> ppfigure.setOpaque(false);
>
>
ppfigure.setBackgroundColor(ColorConstants.VisualComposerCol ors.COLOR_RED_AC
> TIVE);
>
>
ppfigure.setForegroundColor(ColorConstants.VisualComposerCol ors.COLOR_RED_BO
> RDER);
>
> return ppfigure;
> }
>
>
> "Randy Hudson" <none@us.ibm.com> wrote in message
> news:cf8ea5$22m$1@eclipse.org...
> > "Bradley Schmerl" <schmerl@cs.cmu.edu> wrote in message
> > news:cf3mnb$j52$1@eclipse.org...
> > > For me, fillPolygon and drawPolygon zoom ok. fill/drawRectangle,
> > > fill/drawOval, and fill/drawRoundedRectangle do not. Adding one pixel
in
> > > each direction to these methods works for me.
> > >
> > > Bradley.
> >
> > So that's what I was saying about fills. It need to have one pixel more
> to
> > be the same size. This is true at 100%, so it is true at 300% also.
> >
> >
>
>
>
|
|
|
Re: Rounding errors in figure drawing -> Sorry, my mistake! [message #157336 is a reply to message #156994] |
Mon, 08 November 2004 22:35 |
Eclipse User |
|
|
|
Originally posted by: none.us.ibm.com
The trick is you cannot draw on your bottom and right edges of your bounds.
You should try calling fillRectangle(getBounds()), and compare your polygon
to that rectangular area. You should be able to overlap it completely.
"Marion Schmid" <marion.schmid@sap.com> wrote in message
news:cmg0l0$bk5$1@eclipse.org...
> Sorry!
> I want to cancel my previous question!
> I just found my problem in fillShape/outlineShape:
>
> For the reference rectangle in fillShape() and outlineShape I now use
>
> Rectangle r = getBounds().getCopy().shrink((lineWidth-1/2),
> (lineWidth-1/2));
>
> and everything works, all zoom steps from 10% to 1000%
>
> Best regards,
> Marion
>
> "Marion Schmid" <marion.schmid@sap.com> wrote in message
> news:cmfvm1$24p$1@eclipse.org...
> > Hello all,
> >
> > I think I have a similar problem, but it might also be a problem of
> coding,
> > don't know...
> > I added three screenshot to show you the problem I have with zooming and
a
> > shape, that's done with graphics.drawLine / drawPolygon(..) and
> > fillPolygon().
> >
> > The screenshots I added are at zoom levels 150, 200,210. I also had
> problems
> > with 100, that's why I think it's maybe my coding where the problem is.
> But
> > maybe someone of you can tell me why... ??
> >
> > As you will see in outlineShape(), I tried with drawPolygon and with
> > drawLine - both with the same results.
> >
> > ==== MyShape extends Shape =====
> > protected void fillShape(Graphics g) {
> > double insetProportion = 0.27;
> > Rectangle r = getBounds().getCopy().expand(1,1); //translate(-1,
> > 0).shrink((lineWidth-1)/2,(lineWidth-1)/2);
> > double cornerInsetX = r.width * insetProportion;
> > double cornerInsetY = r.height/2;
> > PrecisionPoint pp = new PrecisionPoint(r.getLeft().x + cornerInsetX,
> > r.getTop().y+cornerInsetY);
> >
> > PointList pl = new PointList();
> > pl.addPoint(r.getTopLeft());
> >
> > pl.addPoint(r.getTopRight());
> > pl.addPoint(r.getBottomRight());
> > pl.addPoint(r.getBottomLeft());
> > pl.addPoint(pp);
> >
> > g.fillPolygon(pl);
> > }
> >
> > protected void outlineShape(Graphics g) {
> > Rectangle r = getBounds().getCopy();
> >
> > double cornerInsetX = r.width * insetProportion;
> > double cornerInsetY = r.height/2;
> >
> > PrecisionPoint pp = new PrecisionPoint(r.getLeft().x + cornerInsetX,
> > r.getTop().y+cornerInsetY);
> >
> > // ### polygon version ###
> > PointList pl = new PointList();
> > pl.addPoint(r.getTopLeft());
> >
> > pl.addPoint(r.getTopRight());
> > pl.addPoint(r.getBottomRight());
> > pl.addPoint(r.getBottomLeft());
> > pl.addPoint(pp);
> >
> > g.drawPolygon(pl);
> >
> > // ### drawLine version ### /**
> > g.drawLine(r.getTopLeft(), r.getTopRight());
> > g.drawLine(r.getBottomRight(), r.getTopRight());
> > g.drawLine(r.getBottomLeft(), r.getBottomRight());
> > g.drawLine(r.getBottomLeft(), pp);
> > g.drawLine(pp, r.getTopLeft());
> > */
> > }
> >
> >
> > ====== MyEditPart =========
> > protected IFigure createFigure() {
> >
> > MyShape ppfigure = new MyShape();
> > ppfigure.setLayoutManager(new BorderLayout());
> > ppfigure.setOpaque(false);
> >
> >
>
ppfigure.setBackgroundColor(ColorConstants.VisualComposerCol ors.COLOR_RED_AC
> > TIVE);
> >
> >
>
ppfigure.setForegroundColor(ColorConstants.VisualComposerCol ors.COLOR_RED_BO
> > RDER);
> >
> > return ppfigure;
> > }
> >
> >
> > "Randy Hudson" <none@us.ibm.com> wrote in message
> > news:cf8ea5$22m$1@eclipse.org...
> > > "Bradley Schmerl" <schmerl@cs.cmu.edu> wrote in message
> > > news:cf3mnb$j52$1@eclipse.org...
> > > > For me, fillPolygon and drawPolygon zoom ok. fill/drawRectangle,
> > > > fill/drawOval, and fill/drawRoundedRectangle do not. Adding one
pixel
> in
> > > > each direction to these methods works for me.
> > > >
> > > > Bradley.
> > >
> > > So that's what I was saying about fills. It need to have one pixel
more
> > to
> > > be the same size. This is true at 100%, so it is true at 300% also.
> > >
> > >
> >
> >
> >
>
>
|
|
|
Goto Forum:
Current Time: Sat Nov 09 02:57:10 GMT 2024
Powered by FUDForum. Page generated in 0.03654 seconds
|