epix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [ePiX-devel] Current status of ePiX-1 and 2


From: Andrew D. Hwang
Subject: Re: [ePiX-devel] Current status of ePiX-1 and 2
Date: Thu, 11 Jan 2007 12:17:37 -0500 (EST)

On Mon, 8 Jan 2007, address@hidden wrote:

Hi all,

First, off, the list should no longer strip off the sender's name. Sorry for the unintentionally anonymous messages.

Here are a few quick replies to Marcus's ideas. A (long) status report will follow.

Not sure if I understand the versioning scheme but wouldn't it be more transparent to call is 1.1 as it seems there are some large changes being made rather than small incremental changes?

It seems many GPL projects increment the version number when a major redesign occurs. Most users consequently tend to avoid upgrading until a decent number of sub-versions have appeared (e.g., gcc-4.1 :). While I'm not opposed to this scheme, I've been trying to increment the version numbers "traditionally", when the code reaches a new plateau of features or stability. Version k.m.(n+1) was meant for "ordinary users", though implemented only a smallish number of new features and usually wasn't an "essential upgrade" from k.m.n. Under this scheme, Version 1.1 would be a final release that's stable and well-tested.

On the downside, my current "system" (such as it is) sometimes fails to reflect changes users might want to know of. Version 1.0.7 was a big jump from 1.0.6 (because of Julian Gilbey's nearly heroic work with autotools), 1.0.23 is (or will be) a huge jump from 1.0.22.

In any case, the current scheme lacks a certain utility, but has worked because I've been the only developer. For the future, maybe a linux-like system would be good, particularly if changes may not be incremental: The k.(2m+1) line is for development of k.(2m+2) and not for ordinary users.
k.(2m).n would be incremental improvements for general use.

With version numbers as they are, 1.0.23 could become 1.1 as Marcus suggests, with the understanding that it's not for ordinary use. Once testing and debugging are complete, it would become 1.2.0. Does this (or something similar) seem sensible?

Separately, I hadn't planned (until the 5th of this month :) to invest more time in the 1.x code. However, when the current round of re-coding is complete, the internals will be much better organized, and should be suitable as a foundation for further development.

2. For the benefit of pdflatex users, I'd like to keep the output free
   of PSTricks macros unless the user explicitly asks.  My current idea
   for color filling is to modify Svend D. Pedersen's polygon hatching
   code. With luck, this will permit simulated transparency for filled
   polygons.

Does this still give colour output? I am unfamiliar with the polygon hatching code.

Yes. :) Here's a simple "smoke test":

---(snip)---
/* -*-ePiX-*- */
#include "epix.h"
#include "epix_ext.h"
using namespace ePiX;
using namespace ePiX_contrib;

P poly1[] = {P(-1,-1), P(1,-1), P(1,1), P(-1,1)};
P poly2[] = {P(-2,-0.5), P(2,-0.5), P(2,2), P(-2,2)};

int main()
{
  bounding_box(P(-2,-2),P(2,2));
  unitlength("1in");
  picture(4,4);

  begin();

  bold();
  red();
  hatch_polygon(45, 0.02, 4, poly1);

  blue();
  hatch_polygon(-45, 0.02, 4, poly2);

  end();
}
---(snip)---

The eepic file contains no specials.

One other thing I thought of was that all graphs should refuse to plot points outside of their bounds be default - it seems very unusual to see points outside the graph bounds being plotted but that change should not be difficult to add.

For immediate use, putting a crop() command just after begin() should do.

Orignally the goal was to plot functions specified by formulas (rather than data), and to draw Exactly What the User Requested. My philosophy is admittedly a response to the commercial M--- programs, at least one of which chooses plot attributes (aspect ratio, clipping, graph color, etc.) cleverly and automatically, making the user fight to get a plot that's mathematically correct. This, in my opinionated view, is a Small Crime. :)

For 2-d plotting, cropping by default seems safe fairly. For other types of drawing (especially in 3-d, where page locations are not so easily predicted), default cropping might be an annoyance. However, it would be easy (as you say) to make plot functions (just data plotting functions?) crop their output by default. If that's the expected behavior, I'm happy to consider it.

Best,
Andy

Andrew D. Hwang                 address@hidden
Department of Math and CS       http://mathcs.holycross.edu/~ahwang
College of the Holy Cross       (508) 793-2458 (Office: 320 Swords)
Worcester, MA, 01610-2395       (508) 793-3530 (fax)




reply via email to

[Prev in Thread] Current Thread [Next in Thread]