Code covered by the BSD License

### Highlights from Plot 3D Color Line

4.09091
4.1 | 11 ratings Rate this file 22 Downloads (last 30 days) File Size: 2.66 KB File ID: #8597

# Plot 3D Color Line

### Daniel Ennis (view profile)

29 Sep 2005 (Updated )

Plots a 3D line with color encoding along the length using the patch function.

File Information
Description

This function plots a 3D line (x,y,z) encoded with scalar color data (c). This function is an improvement over the CLINE function previously made available on TMW File Exchange. Rather than using the LINE function a PATCH surface is generated. This provides a way to change the colormapping because the surface patches use indexed colors rather than true colors. Hence changing the COLORMAP or CAXIS of the figure will change the colormapping of the patch object.

DEMO: clinep;

SYNTAX: h=clinep(x,y,z[,c,W]);

INPUTS:
x - mx1 vector of x-position data
y - mx1 vector of y-position data
z - mx1 vector of z-position data

-OPTIONAL INPUTS-

c - mx1 vector of index color-data (uses current colormap or DEFAULT)
W - 1x1 specifies the line thickness (DEFAULT is 3)

OUTPUT:

h - Graphics handle to the patch object.

DBE 2005/09/29

P.S. The code is modified from code that generates a 3D tube, rather than a line, but that needs more work still.

Acknowledgements

Cline.M inspired this file.

MATLAB release MATLAB 7 (R14)
Other requirements None that I know of.
03 Jul 2012 Andrew Diamond

### Andrew Diamond (view profile)

Apparently, when consecutive x,y points are the same dl will be [0,0,1] and so you end up with alpha and cross(Nz,dl) being 0 yielding a rotation matrix R that is just NaNs and nothing will be plotted for that segment.

There may be more elegant fixes but checking for that and using R=eye(3) if it is nan seems to solve this.

if(isnan(R(1)))
R=eye(3);
end

06 Mar 2012 Richard Arlow

### Richard Arlow (view profile)

This works great! Is there any way to change the color mapping in terms of intensity and/or using other colormaps?

22 Apr 2011 Julien

### Julien (view profile)

Wrong window, sorry ...

28 Jun 2009 Nikola Toljic

### Nikola Toljic (view profile)

Thanks.

14 Jan 2009 John McArthur

### John McArthur (view profile)

With vector color data (input arg 'c') it seems to divide up the line into 3rds. This is on 2008b

Any thoughts?

17 Oct 2008 rose Campbell

Thanks very useful!

Comment only
27 Nov 2006 Felix Huang

Are cylinder commands really necessary? This is a high performance way to get a color mapped line of zero thickness:

y=patch([q1; q1(end:-1:1)], [q2; q2(end:-1:1)], [[1:length(q1)], [length(q1):-1:1]] ,'EdgeCo', 'none');

09 Jun 2006 Peter Gurk

The idea is good, but performance is unacceptable (slow)

22 Feb 2006 Neil King

This is great! Just what i was after. Thanks

15 Nov 2005 riki vela

muy bueno, gracias

12 Nov 2005 anon anon
05 Oct 2005 sas fgagfsg

eysrr