[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