<div dir="ltr">Hi again,<br><br>I have modified the code a bit. Used Assembly to add lines and cursoe, so that we can rotate the entire cursor easily.<br><br>Here is the modified code<br><br><b><span style="color: rgb(0, 0, 153);">import vtk</span><br style="color: rgb(0, 0, 153);">
<span style="color: rgb(0, 0, 153);">import numpy as np</span><br style="color: rgb(0, 0, 153);"><span style="color: rgb(0, 0, 153);">color=[1,1,0]</span><br style="color: rgb(0, 0, 153);"><span style="color: rgb(0, 0, 153);">Bounds=[-110,110,-110,110,0,0]</span><br style="color: rgb(0, 0, 153);">
<span style="color: rgb(0, 0, 153);">Cursor=vtk.vtkCursor2D()</span><br style="color: rgb(0, 0, 153);"><span style="color: rgb(0, 0, 153);">Cursor.SetModelBounds(Bounds)</span><br style="color: rgb(0, 0, 153);"><span style="color: rgb(0, 0, 153);">Cursor.SetFocalPoint(0,0,0)</span><br style="color: rgb(0, 0, 153);">
<span style="color: rgb(0, 0, 153);">Cursor.AllOn()</span><br style="color: rgb(0, 0, 153);"><span style="color: rgb(0, 0, 153);">Cursor.AxesOn()</span><br style="color: rgb(0, 0, 153);"><span style="color: rgb(0, 0, 153);">Cursor.OutlineOff()</span><br style="color: rgb(0, 0, 153);">
<span style="color: rgb(0, 0, 153);">Cursor.SetRadius(1)</span><br style="color: rgb(0, 0, 153);"><span style="color: rgb(0, 0, 153);">mapper=vtk.vtkPolyDataMapper()</span><br style="color: rgb(0, 0, 153);"><span style="color: rgb(0, 0, 153);">mapper.SetInputConnection(Cursor.GetOutputPort())</span><br style="color: rgb(0, 0, 153);">
<span style="color: rgb(0, 0, 153);">actor=vtk.vtkActor()</span><br style="color: rgb(0, 0, 153);"><span style="color: rgb(0, 0, 153);">actor.SetMapper(mapper)</span><br style="color: rgb(0, 0, 153);"><span style="color: rgb(0, 0, 153);">actor.GetProperty().SetColor(color)</span><br style="color: rgb(0, 0, 153);">
<br style="color: rgb(0, 0, 153);"><br style="color: rgb(0, 0, 153);"><span style="color: rgb(0, 0, 153);">def CreateTicks(Cursorolor,CursorursorBounds,TickInterval):</span><br style="color: rgb(0, 0, 153);"><span style="color: rgb(0, 0, 153);"> XTicks=list()</span><br style="color: rgb(0, 0, 153);">
<span style="color: rgb(0, 0, 153);"> YTicks=list()</span><br style="color: rgb(0, 0, 153);"><span style="color: rgb(0, 0, 153);"> XBoundsRight=CursorursorBounds[0]</span><br style="color: rgb(0, 0, 153);"><span style="color: rgb(0, 0, 153);"> XBoundsLeft=CursorursorBounds[1]</span><br style="color: rgb(0, 0, 153);">
<span style="color: rgb(0, 0, 153);"> YBoundsRight=CursorursorBounds[2]</span><br style="color: rgb(0, 0, 153);"><span style="color: rgb(0, 0, 153);"> YBoundsLeft=CursorursorBounds[3]</span><br style="color: rgb(0, 0, 153);">
<br style="color: rgb(0, 0, 153);"><span style="color: rgb(0, 0, 153);"> for x in range(XBoundsRight+TickInterval,XBoundsLeft,TickInterval):</span><br style="color: rgb(0, 0, 153);"><span style="color: rgb(0, 0, 153);"> print x</span><br style="color: rgb(0, 0, 153);">
<span style="color: rgb(0, 0, 153);"> XTick=vtk.vtkLineSource()</span><br style="color: rgb(0, 0, 153);"><span style="color: rgb(0, 0, 153);"> XTick.SetPoint1(x,5,0)</span><br style="color: rgb(0, 0, 153);">
<span style="color: rgb(0, 0, 153);"> XTick.SetPoint2(x,-5,0)</span><br style="color: rgb(0, 0, 153);"><span style="color: rgb(0, 0, 153);"> XTick.Update()</span><br style="color: rgb(0, 0, 153);"><span style="color: rgb(0, 0, 153);"> XTickMapper=vtk.vtkPolyDataMapper()</span><br style="color: rgb(0, 0, 153);">
<span style="color: rgb(0, 0, 153);"> XTickMapper.SetInputConnection(XTick.GetOutputPort())</span><br style="color: rgb(0, 0, 153);"><span style="color: rgb(0, 0, 153);"> XTickActor=vtk.vtkActor()</span><br style="color: rgb(0, 0, 153);">
<span style="color: rgb(0, 0, 153);"> XTickActor.SetMapper(XTickMapper)</span><br style="color: rgb(0, 0, 153);"><span style="color: rgb(0, 0, 153);"> XTickActor.GetProperty().SetColor(color)</span><br style="color: rgb(0, 0, 153);">
<span style="color: rgb(0, 0, 153);"> XTicks.append(XTickActor)</span><br style="color: rgb(0, 0, 153);"><br style="color: rgb(0, 0, 153);"><span style="color: rgb(0, 0, 153);"> for y in range(YBoundsRight+TickInterval,YBoundsLeft,TickInterval):</span><br style="color: rgb(0, 0, 153);">
<span style="color: rgb(0, 0, 153);"> #print y</span><br style="color: rgb(0, 0, 153);"><span style="color: rgb(0, 0, 153);"> YTick=vtk.vtkLineSource()</span><br style="color: rgb(0, 0, 153);"><span style="color: rgb(0, 0, 153);"> YTick.SetPoint1(5,y,0)</span><br style="color: rgb(0, 0, 153);">
<span style="color: rgb(0, 0, 153);"> YTick.SetPoint2(-5,y,0)</span><br style="color: rgb(0, 0, 153);"><span style="color: rgb(0, 0, 153);"> YTick.Update()</span><br style="color: rgb(0, 0, 153);"><span style="color: rgb(0, 0, 153);"> YTickMapper=vtk.vtkPolyDataMapper()</span><br style="color: rgb(0, 0, 153);">
<span style="color: rgb(0, 0, 153);"> YTickMapper.SetInputConnection(YTick.GetOutputPort())</span><br style="color: rgb(0, 0, 153);"><span style="color: rgb(0, 0, 153);"> YTickActor=vtk.vtkActor()</span><br style="color: rgb(0, 0, 153);">
<span style="color: rgb(0, 0, 153);"> YTickActor.SetMapper(YTickMapper)</span><br style="color: rgb(0, 0, 153);"><span style="color: rgb(0, 0, 153);"> YTickActor.GetProperty().SetColor(color)</span><br style="color: rgb(0, 0, 153);">
<span style="color: rgb(0, 0, 153);"> YTicks.append(YTickActor)</span><br style="color: rgb(0, 0, 153);"><span style="color: rgb(0, 0, 153);"> return XTicks,YTicks</span><br style="color: rgb(0, 0, 153);"><br style="color: rgb(0, 0, 153);">
<br style="color: rgb(0, 0, 153);"><span style="color: rgb(0, 0, 153);">XTicks,YTicks=CreateTicks((1,1,0),Bounds,10)</span><br style="color: rgb(0, 0, 153);"><span style="color: rgb(0, 0, 153);">NumOfXTicks= np.size(XTicks)</span><br style="color: rgb(0, 0, 153);">
<span style="color: rgb(0, 0, 153);">NumOfYTicks= np.size(YTicks)</span><br style="color: rgb(0, 0, 153);"><br style="color: rgb(0, 0, 153);"><br style="color: rgb(0, 0, 153);"><span style="color: rgb(0, 0, 153);">Ren=vtk.vtkRenderer()</span><br style="color: rgb(0, 0, 153);">
<span style="color: rgb(0, 0, 153);">Assembly=vtk.vtkAssembly()</span><br style="color: rgb(0, 0, 153);"><span style="color: rgb(0, 0, 153);">Assembly.AddPart(actor)</span><br style="color: rgb(0, 0, 153);"><span style="color: rgb(0, 0, 153);">for x in range(0,NumOfXTicks,1):</span><br style="color: rgb(0, 0, 153);">
<span style="color: rgb(0, 0, 153);"> Assembly.AddPart(XTicks[x])</span><br style="color: rgb(0, 0, 153);"><br style="color: rgb(0, 0, 153);"><span style="color: rgb(0, 0, 153);">for y in range(0,NumOfYTicks,1):</span><br style="color: rgb(0, 0, 153);">
<span style="color: rgb(0, 0, 153);"> Assembly.AddPart(YTicks[y])</span><br style="color: rgb(0, 0, 153);"><span style="color: rgb(0, 0, 153);">Assembly.RotateZ(45)</span><br style="color: rgb(0, 0, 153);"><span style="color: rgb(0, 0, 153);">Ren.AddActor(Assembly)</span><br style="color: rgb(0, 0, 153);">
<span style="color: rgb(0, 0, 153);">RenWin=vtk.vtkRenderWindow()</span><br style="color: rgb(0, 0, 153);"><span style="color: rgb(0, 0, 153);">RenWin.AddRenderer(Ren)</span><br style="color: rgb(0, 0, 153);"><span style="color: rgb(0, 0, 153);">RenWin.Render()</span></b><br>
<br><br>Thanks,<br><br>Jothy<br><br><div class="gmail_quote">On Sun, Apr 18, 2010 at 5:54 PM, Jothybasu K Selvaraj <span dir="ltr"><<a href="mailto:jothybasu@gmail.com">jothybasu@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<div dir="ltr">Hi Guys,<br><br>I have managed to create a digital graticule, but the distance of the ticks doesn't match properly.Basically its stitching together a cursor2D & small line from vtkLineSource.<br><br>
If anyone can figure it out, I request them to create a c++ class and sub,it that to the developer list as a convenience class.<br><br>Thanks,<br><br>Jothy <br><br><br><br><br><br>import vtk<br>import numpy as np<br>color=[1,1,0]<br>
Bounds=[-110,110,-110,110,0,0]<br>Cursor=vtk.vtkCursor2D()<br>Cursor.SetModelBounds(Bounds)<br>Cursor.SetFocalPoint(0,0,0)<br>Cursor.AllOn()<br>Cursor.AxesOn()<br>Cursor.OutlineOff()<br>Cursor.SetRadius(1)<br>mapper=vtk.vtkPolyDataMapper()<br>
mapper.SetInputConnection(Cursor.GetOutputPort())<br>actor=vtk.vtkActor()<br>actor.SetMapper(mapper)<br>actor.GetProperty().SetColor(color)<br><br><br>def CreateTicks(Cursorolor,CursorursorBounds,TickInterval):<br> XTicks=list()<br>
YTicks=list()<br> XBoundsRight=CursorursorBounds[0]<br> XBoundsLeft=CursorursorBounds[1]<br> YBoundsRight=CursorursorBounds[2]<br> YBoundsLeft=CursorursorBounds[3]<br><br> for x in range(XBoundsRight+TickInterval,XBoundsLeft,TickInterval):<br>
print x<br> XTick=vtk.vtkLineSource()<br> XTick.SetPoint1(x,5,0)<br> XTick.SetPoint2(x,-5,0)<br> XTick.Update()<br> XTickMapper=vtk.vtkPolyDataMapper()<br> XTickMapper.SetInputConnection(XTick.GetOutputPort())<br>
XTickActor=vtk.vtkActor()<br> XTickActor.SetMapper(XTickMapper)<br> XTickActor.GetProperty().SetColor(color)<br> XTicks.append(XTickActor)<br><br> for y in range(YBoundsRight+TickInterval,YBoundsLeft,TickInterval):<br>
#print y<br> YTick=vtk.vtkLineSource()<br> YTick.SetPoint1(5,y,0)<br> YTick.SetPoint2(-5,y,0)<br> YTick.Update()<br> YTickMapper=vtk.vtkPolyDataMapper()<br> YTickMapper.SetInputConnection(YTick.GetOutputPort())<br>
YTickActor=vtk.vtkActor()<br> YTickActor.SetMapper(YTickMapper)<br> YTickActor.GetProperty().SetColor(color)<br> YTicks.append(YTickActor)<br> return XTicks,YTicks<br><br><br>XTicks,YTicks=CreateTicks((1,1,0),Bounds,10)<br>
NumOfXTicks= np.size(XTicks)<br>NumOfYTicks= np.size(YTicks)<br><br><br>Ren=vtk.vtkRenderer()<br>Ren.AddActor(actor)<br>for x in range(0,NumOfXTicks,1):<br> Ren.AddActor(XTicks[x])<br><br>for y in range(0,NumOfYTicks,1):<br>
Ren.AddActor(YTicks[y])<br><br><br>RenWin=vtk.vtkRenderWindow()<br>RenWin.AddRenderer(Ren)<br>RenWin.Render()<br><br></div>
</blockquote></div><br></div>