From: Daniel J S. <dan...@ie...> - 2007-03-14 22:04:36
|
Ethan Merritt wrote: > On Wednesday 14 March 2007 14:15, Daniel J Sebald wrote: > >>* Many times people want to plot a line representing some boundary or plane which basically means they'd like to have the line extend from one boundary of the plot to another. In other words, they'd like an infinite length line that should be clipped at the boundary. (Or a line that is infinite in one direction and not the other... a bit imprecised, math wise, but I think you get the idea.) To do this now, I believe the user has to resort to computing the points of intersection of the line and the four possible boundaries. (If they have a bit more knowledge about the slope of the line, guessing which boundaries intersect is easy.) This isn't a difficult problem for the user, but it is a bit of a pain. So, if the term->clip_region() function is implemented, it might be nice to have gnuplot do this work for the user. So, for arrow, rather than just a "to"/"from", it might be nice to augment that with "thru"/"slope", or more generally w'x + b where w is a two dimensiona l >>or three dimensional vector perpendicular to the line or plane and b is a constant (commonly referred to as a hyperplane). I'm not exactly sure what syntax one would use: > > > Maybe I haven't had enough coffee yet, but I have no idea > what you are trying to describe here. > How is this different from just specifying the equation of a line, Well, that is a good point. Giving the equation of a line just about does it. Maybe this isn't as difficult as I thought. Let me illustrate. Consider drawing some asymptotes at (-2,0) (I'll leave out the actual curves.) I want something like set arrow 1 from -2,0 to -10,0 nohead lc rgb "black" set arrow 2 from -2,0 to -2+10*cos(pi/3),0+10*sin(pi/3) nohead lc rgb "black" set arrow 3 from -2,0 to -2+10*cos(-pi/3),0+10*sin(-pi/3) nohead lc rgb "black" set xrange [-5:5] set yrange [-5:5] plot '-' with points 0 0 e OK, some comments: 1) I'd like the asymptotes to be dashed lines. Is it possible to do so, I mean generally speaking for all terminals? 2) Note how the lines are not clipped at the boundaries. Let's say that clipping region is possible and I change from set xrange [-5:5] to set xrange [-20:20] I'd have to go back and make sure my lines extend past the boundaries. Anyway... 3) OK, not too much work to compute those additional requirements by noting the boundary is y=+-5 and figure 0+Y*sin(pi/3) = +5 or set arrow 1 from -2,0 to -5,0 nohead lc rgb "black" set arrow 2 from -2,0 to -2+5/sin(pi/3),0+5 nohead lc rgb "black" set arrow 3 from -2,0 to -2+5/sin(pi/3),0-5 nohead lc rgb "black" set xrange [-5:5] set yrange [-5:5] plot '-' with points 0 0 e But let's say I change my range now from set xrange [-5:5] to set xrange [-5:1] in which case I'd have to focus now on the intersection along the right boundary rather than the top and bottom. 4) As Ethan mentioned, do this with lines so that clipping behaves as desired. But I then have to set up the sampling so that a sample point lands on (-2,0), and do this as parametric so that I can get portions of lines. Ultimately, I think it isn't convenient for the user to enter lines like I have. (And what I've done doesn't seem too unusual of a request.) Dan |