[vtkusers] A Problem About vtkXYPlotActor

LiuNiansheng phenome at live.cn
Fri Jul 9 05:46:55 EDT 2010


Hi Adriano
     Thank you so much for your suggestion.       I think my explanation is not clear enough. I know if I set the y-axis range from 0 to 15, that is no problem. But what I want to know is that why one line which should be drawn disappeared at this condition(y-axis from 0 to 8). Please pay attention to the line e(7.0)f(8,10). Why it disappeared? Just because point f(8,10) is out of range? no, if we change point e(7,0) to e(7,0.1), the line ef will be drawn. Point c(4,15) is out of range too, but line bc is drawn. That is the problem.      I attached the capture of this little sample and my analysis. Please have a look.      Thank you again.
      Best wishes!
Elo
From: agagliardi at ara.co.uk
To: phenome at live.cn; vtkusers at vtk.org
Subject: RE: [vtkusers] A Problem About vtkXYPlotActor
Date: Fri, 9 Jul 2010 09:44:54 +0100










Hi 
Elo,
 
So, you have 
set your y-axis range to be between 0 and 8, you then plot a curve where some of 
those y-values are out of this range, so it doesn't plot them (it clips them 
out). This appears to be normal behaviour in my opinion. If you want to see all 
your curves, then you'll have to rescale your y-axis to fit them in by setting 
the y-axis range from 0 to 15. Were you assuming it would automatically fit the 
axes to the data, as within ParaView? This option may still be there, but I've 
never used it.
 
Cheers,
 
Adriano
 
===================================

Adriano Gagliardi MEng 
PhD
Business Sector Leader
Computational Aerodynamics
Aircraft Research 
Association Ltd.
Manton Lane
Bedford

Tel: 01234 32 4644
E-mail: 
agagliardi at ara.co.uk
Url: www.ara.co.uk 

 



From: vtkusers-bounces at vtk.org 
[mailto:vtkusers-bounces at vtk.org] On Behalf Of 
LiuNiansheng
Sent: 09 July 2010 03:56
To: 
VTK
Subject: [vtkusers] A Problem About 
vtkXYPlotActor


Hi everyone:


I'm a user of vtk. When I use vtkXYPlotActor to draw some lines at a 
XYPlot, I found vtk miss one line.
That's my sample code of vtkXYPlotActor:
========================================================================= 
#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->SetNumberOfComponents( 
static_cast<vtkIdType>(2) ); float xy[2]; xy[0] = 
static_cast<float>(0); xy[1] = static_cast<float>(0) ; 
vtkXYValues->InsertNextTuple( xy ); xy[0] = static_cast<float>(2); 
xy[1] = static_cast<float>(3) ; vtkXYValues->InsertNextTuple( xy ); 
xy[0] = static_cast<float>(4); xy[1] = static_cast<float>(15) ; 
vtkXYValues->InsertNextTuple( xy ); xy[0] = static_cast<float>(6); 
xy[1] = static_cast<float>(1) ; vtkXYValues->InsertNextTuple( xy ); 
xy[0] = static_cast<float>(7); xy[1] = static_cast<float>(0.1) ; 
vtkXYValues->InsertNextTuple( xy ); xy[0] = static_cast<float>(8); 
xy[1] = static_cast<float>(10) ; vtkXYValues->InsertNextTuple( xy ); 
xy[0] = static_cast<float>(9); xy[1] = static_cast<float>(9) ; 
vtkXYValues->InsertNextTuple( xy ); xy[0] = static_cast<float>(10); 
xy[1] = static_cast<float>(0) ; vtkXYValues->InsertNextTuple( xy ); 
vtkFieldData* vtkGraphFieldData = vtkFieldData::New(); 
vtkGraphFieldData->AddArray( vtkXYValues ); vtkXYValues->Delete(); 
vtkDataObject* vtkGraphDataObject = vtkDataObject::New(); 
vtkGraphDataObject->SetFieldData( vtkGraphFieldData ); 
vtkGraphFieldData->Delete(); vtkXYPlotActor* vtkGraph = 
vtkXYPlotActor::New(); vtkGraph->AddDataObjectInput( vtkGraphDataObject ); 
vtkGraphDataObject->Delete(); vtkGraph->SetDataObjectPlotModeToColumns(); 
vtkGraph->SetXValuesToValue(); int curve = 0; 
vtkGraph->SetDataObjectXComponent( curve, 0 ); 
vtkGraph->SetDataObjectYComponent( curve, 1 ); vtkGraph->SetXRange( 0, 
10); vtkGraph->SetYRange( 0, 8); vtkGraph->SetPlotColor( curve, 1,0,0 ); 
vtkRenderer* renderer = vtkRenderer::New(); renderer->AddActor2D( vtkGraph ); 
vtkRenderWindow* renderWin = vtkRenderWindow::New(); renderWin->AddRenderer( 
renderer ); vtkRenderWindowInteractor* interactor 
=vtkRenderWindowInteractor::New(); interactor->SetRenderWindow( renderWin ); 
vtkXYPlotWidget* vtkXYPlotWidget = vtkXYPlotWidget::New(); 
vtkXYPlotWidget->SetXYPlotActor( vtkGraph ); 
vtkXYPlotWidget->SetInteractor( interactor ); vtkXYPlotWidget->SetEnabled( 
true ); interactor->Initialize(); interactor->Start(); return 0; } 
========================================================================= I 
define eight points,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) 
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 
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) 
to a value bigger 
than the max value of y axis will be ignored by vtk. 

 I guess the problem maybe happen when clipping 
data. So I debugged vtkXYPlotActor source, and I found the function 
named 
ClipPlotData() have been called in the function CreatPlotData().
The algorithm of clipping 
data is no problem. the number of lines which should be drawn is 
six.


Cause I don't have 
enough time to do further research. If anyone has any information about this 
problem, please let me know.


th 
anks.


sincerely 
yours:
Elo






搜索本应是彩色的,快来体验新一代搜索引擎-必应,精美图片每天换哦! 立即试用! 


使用新一代 Windows Live Messenger 轻松交流和共享! 立刻下载! **********************************************************************
This email contains information that is private and confidential and is intended only for the addressee.
If you are not the intended recipient please delete it and notify us immediately by e-mailing the sender.
Note: All email sent to or from this address may be accessed by someone other than the recipient, for
system management and security reasons.
Aircraft Research Association Ltd.  Registered in England, Registration No 503668 Registered Office:
Manton Lane, Bedford MK41 7PF England VAT No GB 196351245
**********************************************************************
 		 	   		  
_________________________________________________________________
想知道明天天气如何?必应告诉你!
http://cn.bing.com/search?q=%E5%A4%A9%E6%B0%94%E9%A2%84%E6%8A%A5&form=MICHJ2
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.vtk.org/pipermail/vtkusers/attachments/20100709/96983fd8/attachment.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Capture&analysis.doc
Type: application/msword
Size: 37376 bytes
Desc: not available
URL: <http://www.vtk.org/pipermail/vtkusers/attachments/20100709/96983fd8/attachment.doc>


More information about the vtkusers mailing list