<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Verdana
}
--></style>
</head>
<body class='hmmessage'>
Hi everyone:<div><br></div><div>I'm a user of vtk. When I use vtkXYPlotActor to draw some lines at a XYPlot, I found vtk miss one line.</div><div>That's my sample code of vtkXYPlotActor:</div><div><span class="ecxApple-style-span" style="white-space:pre">=========================================================================
#include "vtkFloatArray.h"
#include "vtkFieldData.h"
#include "vtkDataObject.h"
#include "vtkXYPlotActor.h"
#include "vtkXYPlotWidget.h"
#include "vtkMath.h"
#include "vtkRenderWindow.h"
#include "vtkRenderer.h"
#include "vtkRenderWindowInteractor.h"

int main()
{

  vtkFloatArray* vtkXYValues = vtkFloatArray::New();

  vtkXYValues-&gt;SetNumberOfComponents( static_cast&lt;vtkIdType&gt;(2) );


  float xy[2];
  xy[0] = static_cast&lt;float&gt;(0);
  xy[1] = static_cast&lt;float&gt;(0) ;
  vtkXYValues-&gt;InsertNextTuple( xy );

  xy[0] = static_cast&lt;float&gt;(2);
  xy[1] = static_cast&lt;float&gt;(3) ;
  vtkXYValues-&gt;InsertNextTuple( xy );

  xy[0] = static_cast&lt;float&gt;(4);
  xy[1] = static_cast&lt;float&gt;(15) ;
  vtkXYValues-&gt;InsertNextTuple( xy );

  xy[0] = static_cast&lt;float&gt;(6);
  xy[1] = static_cast&lt;float&gt;(1) ;
  vtkXYValues-&gt;InsertNextTuple( xy );

  xy[0] = static_cast&lt;float&gt;(7);
  xy[1] = static_cast&lt;float&gt;(0.1) ;
  vtkXYValues-&gt;InsertNextTuple( xy );

  xy[0] = static_cast&lt;float&gt;(8);
  xy[1] = static_cast&lt;float&gt;(10) ;
  vtkXYValues-&gt;InsertNextTuple( xy );

  xy[0] = static_cast&lt;float&gt;(9);
  xy[1] = static_cast&lt;float&gt;(9) ;
  vtkXYValues-&gt;InsertNextTuple( xy );

  xy[0] = static_cast&lt;float&gt;(10);
  xy[1] = static_cast&lt;float&gt;(0) ;
  vtkXYValues-&gt;InsertNextTuple( xy );

  vtkFieldData* vtkGraphFieldData = vtkFieldData::New();
  vtkGraphFieldData-&gt;AddArray( vtkXYValues );
  vtkXYValues-&gt;Delete();

  vtkDataObject* vtkGraphDataObject = vtkDataObject::New();
  vtkGraphDataObject-&gt;SetFieldData( vtkGraphFieldData );
  vtkGraphFieldData-&gt;Delete();

  vtkXYPlotActor* vtkGraph = vtkXYPlotActor::New();
  vtkGraph-&gt;AddDataObjectInput( vtkGraphDataObject );
  vtkGraphDataObject-&gt;Delete();

  vtkGraph-&gt;SetDataObjectPlotModeToColumns(); 
  vtkGraph-&gt;SetXValuesToValue();
  int curve = 0;
  vtkGraph-&gt;SetDataObjectXComponent( curve, 0 );   
  vtkGraph-&gt;SetDataObjectYComponent( curve, 1 );
  vtkGraph-&gt;SetXRange( 0, 10);
  vtkGraph-&gt;SetYRange( 0, 8);
  vtkGraph-&gt;SetPlotColor( curve, 1,0,0 );

  vtkRenderer* renderer = vtkRenderer::New();
  renderer-&gt;AddActor2D( vtkGraph );
  vtkRenderWindow* renderWin = vtkRenderWindow::New();
  renderWin-&gt;AddRenderer( renderer );

  vtkRenderWindowInteractor* interactor =vtkRenderWindowInteractor::New();
  interactor-&gt;SetRenderWindow( renderWin );
  vtkXYPlotWidget* vtkXYPlotWidget = vtkXYPlotWidget::New(); 
  vtkXYPlotWidget-&gt;SetXYPlotActor( vtkGraph );
  vtkXYPlotWidget-&gt;SetInteractor( interactor );
  vtkXYPlotWidget-&gt;SetEnabled( true );

  interactor-&gt;Initialize();
  interactor-&gt;Start();
  return 0;

}
=========================================================================
I define eight points,<span lang="EN-US" style="font-size:10.5pt;font-family:Arial">a(0,0), b(2,3), c(4,15), d(6,1), e(7,0), f(8,10), g(9,9),h(10,0). And the range of xy  axis is defined from point (0,0)&nbsp;</span></span></div><div><span class="ecxApple-style-span" style="white-space:pre"><span lang="EN-US" style="font-size:10.5pt;font-family:Arial">to (10,8). So there are three points(cfg) out of range. There should be six lines except the line fg which is out of range, but only five lines&nbsp;</span></span></div><div><span class="ecxApple-style-span" style="white-space:pre"><span lang="EN-US"></span>have been drawn. when I change these point to test, I found the line which the value of y axis is from 0(the min value of y axis)&nbsp;</span></div><div><span class="ecxApple-style-span" style="white-space:pre">to a value bigger than the max value of y axis will be ignored by vtk. </span></div><div><span class="ecxApple-style-span" style="white-space:pre"><br></span></div><span class="ecxApple-style-span" style="white-space:pre">&nbsp;I guess the problem maybe happen when clipping data. So I debugged vtkXYPlotActor source, and I found the function&nbsp;</span><div><span class="ecxApple-style-span" style="white-space:pre">named ClipPlotData() have been called in the function CreatPlotData().</span><div><span class="ecxApple-style-span" style="white-space:pre"></span><span class="ecxApple-style-span" style="white-space:pre">The algorithm of clipping data is no problem. the number of lines which should be drawn is six.</span></div><div><span class="ecxApple-style-span" style="white-space:pre"><br></span></div><div><span class="ecxApple-style-span" style="white-space:pre">Cause I don't have enough time to do further research. If anyone has any information about this problem, please let me know.</span></div><div><span class="ecxApple-style-span" style="white-space:pre"><br></span></div><div><span class="ecxApple-style-span" style="white-space:pre">thanks.</span></div><div><span class="ecxApple-style-span" style="white-space:pre"><br></span></div><div><span class="ecxApple-style-span" style="white-space:pre">sincerely yours:</span></div><div><span class="ecxApple-style-span" style="white-space:pre">Elo</span></div><div><span class="ecxApple-style-span" style="white-space:pre"><br></span><div><br></div></div></div>                                               <br><hr>搜索本应是彩色的,快来体验新一代搜索引擎-必应,精美图片每天换哦! <a href="http://cn.bing.com/?form=CRMADS ">立即试用!</a>                                               <br /><hr />使用新一代 Windows Live Messenger 轻松交流和共享! <a href='http://www.windowslive.cn/messenger/' target='_new'>立刻下载!</a></body>
</html>