Hi,
Here are some examples.
The first draws only one point every iteration. Because erase first is off,
old points are still shown. However, LV doesn't draw all points! If you look
carefully, some points are missing. This is because LV draws the points only
when updating the screen, if two points are drawn in one screen refresh,
only the last shows.
The second draws every point, because I used a the value property node.
Normally this is undisireable, but in this case it does exactly what is
needed. Howevery, it slows down the for loop to the screen refresh rate...
The first is fast, but inaccurate, the second slower (140sec) and accurate.
Both speeds are constant however, so the number of points drawn shouldn't
mather. Be aware, that if you ever want to use the scroll bars, these
methods cannot be used (moving will clear the picture)!
Experiment with "Synchronous Display", "Smooth Updates" and "Erase First".
They make big differnce!
There are some more options (just ideas, they might or might not work):
1) make a 2d array, and draw figures in it. Then convert the bitmap to
picture and draw the bitmap. It's slow, but the speed will be constant. The
size you can use is limited (by conversion speed)
2) draw small picture arrays (100 points), and once in a while copy it to a
background (second) picture. Make the foreground picture transparent. The
drawing of the second picture must be done in a parrallel loop....
"Wiebe@CARYA" wrote in message
news:401781e1$1@newsgroups....
> Hi,
>
> The shift register does need to be initialised. To prove this, just run
the
> VI continouselly. Open the tast manager, and see the memory running up. It
> isn't slow the first time, but will get slower and slower, until the
memory
> is swapped to disk, and finally memory shortage messages popup, and the pc
> crashes. It might take days, or weeks, but it will happen. It's a memory
> leak.
>
> When you say the picture has to be updated every iteration, do you mean
you
> want to see one dot drawn every iteration (or 30000)?
>
> I can't see why you cannot move the picture indicator outside the loop,
> because Draw Point accept one cluster. This has nothing to do with each
> other, or perhaps I misunderstand the problem....
>
> From what you're saying, I get the feeling you want to add a sample every
> iteration, and draw this with all the old samples. If so, you may be
better
> of by disselecting the 'clear before drawing' property, and drawing only
one
> point each iteration. You can still keep an internal record or the
> positions... I'll see if I can make an example...
>
> Anyway, using raw data (of one element) will speed up things, but only a
> bit. The Draw Point VI doesn't do much, but pasting a few bytes together.
>
> Regards,
>
> Wiebe.
>
> "Pier Giuseppe" wrote in message
> news:506500000005000000C2510100-1073519706000@exchange.ni.com...
> > Thanks for your support.
> > Anyway I think some of the suggestions are not applicable, let me
> > explain:
> > I can not move picture_out outside the for loop because Draw Point
> > accepts one cluster of two elements (x&y) and not one array (like Draw
> > Multiple Lines). For the same reason building arrays of "raw data"
> > does not solve the problem.
> > Initialising the shift register does not speed up the process (as far
> > as I see) and I must update the picture every iteration for the above
> > mentioned reason. In my real application I have to update the pen at
> > every iteration because colour and pixel size change and all the
> > points are visible.
> > Your suggestions are welcome
>
>
[Attachment d_points3.vi, see below]
[Attachment d_points4.vi, see below]