<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>