Commit 7a7575246daf1e9608d1941c08b678de48907fbe
1 parent
dc6f1c9a
Exists in
master
and in
26 other branches
Drawing the arc
Showing
1 changed file
with
37 additions
and
4 deletions
Show diff stats
invesalius/data/viewer_slice.py
@@ -225,7 +225,7 @@ class CanvasRendererCTX: | @@ -225,7 +225,7 @@ class CanvasRendererCTX: | ||
225 | gc.SetAntialiasMode(0) | 225 | gc.SetAntialiasMode(0) |
226 | 226 | ||
227 | font = wx.SystemSettings.GetFont(wx.SYS_DEFAULT_GUI_FONT) | 227 | font = wx.SystemSettings.GetFont(wx.SYS_DEFAULT_GUI_FONT) |
228 | - font.SetWeight(wx.BOLD) | 228 | + # font.SetWeight(wx.BOLD) |
229 | font = gc.CreateFont(font, (0, 0, 255)) | 229 | font = gc.CreateFont(font, (0, 0, 255)) |
230 | gc.SetFont(font) | 230 | gc.SetFont(font) |
231 | 231 | ||
@@ -240,16 +240,49 @@ class CanvasRendererCTX: | @@ -240,16 +240,49 @@ class CanvasRendererCTX: | ||
240 | for p in m.points: | 240 | for p in m.points: |
241 | coord.SetValue(p) | 241 | coord.SetValue(p) |
242 | cx, cy = coord.GetComputedDisplayValue(self.viewer.slice_data.renderer) | 242 | cx, cy = coord.GetComputedDisplayValue(self.viewer.slice_data.renderer) |
243 | + print (p, cx, cy) | ||
243 | cy = -cy | 244 | cy = -cy |
244 | lines.append((cx, cy)) | 245 | lines.append((cx, cy)) |
245 | path = gc.CreatePath() | 246 | path = gc.CreatePath() |
246 | - path.AddArc(cx, cy, 5, 0, np.pi * 2) | 247 | + path.AddCircle(cx, cy, 2.5) |
247 | gc.StrokePath(path) | 248 | gc.StrokePath(path) |
248 | gc.FillPath(path) | 249 | gc.FillPath(path) |
249 | 250 | ||
250 | if len(lines) > 1: | 251 | if len(lines) > 1: |
251 | - gc.DrawLines(lines) | ||
252 | - txt = u"%.3f" % m.value | 252 | + path = gc.CreatePath() |
253 | + | ||
254 | + path.MoveToPoint(*lines[0]) | ||
255 | + for p in lines[1::]: | ||
256 | + path.AddLineToPoint(*p) | ||
257 | + gc.StrokePath(path) | ||
258 | + if m.type == const.ANGULAR: | ||
259 | + txt = u"%.3f°" % m.value | ||
260 | + | ||
261 | + if len(lines) == 3: | ||
262 | + path = gc.CreatePath() | ||
263 | + | ||
264 | + c = np.array(lines[1]) | ||
265 | + v0 = np.array(lines[0]) - c | ||
266 | + v1 = np.array(lines[2]) - c | ||
267 | + | ||
268 | + s0 = np.linalg.norm(v0) | ||
269 | + s1 = np.linalg.norm(v1) | ||
270 | + | ||
271 | + a0 = np.arctan2(v0[1] , v0[0]) | ||
272 | + a1 = np.arctan2(v1[1] , v1[0]) | ||
273 | + | ||
274 | + if (a1 - a0) % (np.pi*2) < (a0 - a1) % (np.pi*2): | ||
275 | + sa = a0 | ||
276 | + ea = a1 | ||
277 | + else: | ||
278 | + sa = a1 | ||
279 | + ea = a0 | ||
280 | + | ||
281 | + path.AddArc((c[0], c[1]), min(s0, s1), sa, ea) | ||
282 | + gc.StrokePath(path) | ||
283 | + | ||
284 | + else: | ||
285 | + txt = u"%.3f mm ひらがな - Hiragana, 히라가나" % m.value | ||
253 | gc.DrawText(txt, *lines[0]) | 286 | gc.DrawText(txt, *lines[0]) |
254 | 287 | ||
255 | gc.Destroy() | 288 | gc.Destroy() |