3D scatter plot

Hi,

As i am dealing with point cloud data, i am looking for a way to read point information in the Gizmo 3D scatter plot. For instance in a normal graph, igor allows to pull down this information menu with two cursors, is there a way to do the same with a Gizmo 3D scatter plot?
Thanks
Simon
Hello Simon,

Gizmo does not support a 3D cursor mostly because real 3D input devices are not very common. You can however use the poor-man's approach which is to create a new wave e.g.,
make/o/n=(1,3) eee=0


and append this wave as a new scatter object using a distinctive marker (in practice you may want to replace the zero setting with a point somewhere inside the volume occupied by your original scatter). Next add a panel with controls that let you modify the position of this "cursor" marker, for example:

Window Panel0() : Panel
    PauseUpdate; Silent 1       // building window...
    NewPanel /W=(559,681,803,847)
    SetVariable setvar0,pos={22,14},size={103,15},title="x"
    SetVariable setvar0,limits={-inf,inf,0.1},value= eee[0]
    SetVariable setvar1,pos={23,33},size={103,15},title="y"
    SetVariable setvar1,limits={-inf,inf,0.1},value= eee[0][1]
    SetVariable setvar2,pos={22,52},size={103,15},title="z"
    SetVariable setvar2,limits={-inf,inf,0.1},value= eee[0][2]
EndMacro


If you do have access to a 3D input device you can connect it to the XYZ value of the wave and bypass the panel.

I hope this helps,


A.G.
WaveMetrics, Inc.
I Appreciate your very quick answer,
This method work well.
But it will be time consuming for what i need to do. i am working on an alternative method.
Thanks a lot
Simon
Igor wrote:
Hello Simon,

Gizmo does not support a 3D cursor mostly because real 3D input devices are not very common. You can however use the poor-man's approach which is to create a new wave e.g.,
make/o/n=(1,3) eee=0


and append this wave as a new scatter object using a distinctive marker (in practice you may want to replace the zero setting with a point somewhere inside the volume occupied by your original scatter). Next add a panel with controls that let you modify the position of this "cursor" marker, for example:

Window Panel0() : Panel
    PauseUpdate; Silent 1       // building window...
    NewPanel /W=(559,681,803,847)
    SetVariable setvar0,pos={22,14},size={103,15},title="x"
    SetVariable setvar0,limits={-inf,inf,0.1},value= eee[0]
    SetVariable setvar1,pos={23,33},size={103,15},title="y"
    SetVariable setvar1,limits={-inf,inf,0.1},value= eee[0][1]
    SetVariable setvar2,pos={22,52},size={103,15},title="z"
    SetVariable setvar2,limits={-inf,inf,0.1},value= eee[0][2]
EndMacro


If you do have access to a 3D input device you can connect it to the XYZ value of the wave and bypass the panel.

I hope this helps,


A.G.
WaveMetrics, Inc.



Hello,
I used this info to plot a 3D plot for aircraft data (long, lat, alt). It works very well but I would like to colour the points by a data wave.
Could you tell me the best way to do this.

Thanks

LaMP wrote:

Hello,
I used this info to plot a 3D plot for aircraft data (long, lat, alt). It works very well but I would like to colour the points by a data wave.
Could you tell me the best way to do this.


It would be best if you started a separate thread for this question.

It is not obvious from your question if you are plotting a path or a scatter object. In both cases the coloring is accomplished in a similar way: you use your data wave to create an appropriate color wave. The general approach is to use one of the built-in color tables to construct a color wave that is appropriate for a path or scatter object. You can do this in a few command lines or take the following shortcut:

1. copy your source wave that defines the locations of the data:
Duplicate/o srcWave,tmpSrc


2. set the z-column to your "data wave":
tmpSrc[][2]=dataWave[p]


3. use the following command line to generate a color wave:
ModifyGizmo makeTripletColorWave={tmpSrc,Rainbow,0}


4. use the created tmpSrc_C as the color wave for the path or scatter object.

I hope this helps,

A.G.
WaveMetrics, Inc.