Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Approximate concordia with equal-length segments #219

Open
johnzeringue opened this issue Oct 16, 2015 · 3 comments
Open

Approximate concordia with equal-length segments #219

johnzeringue opened this issue Oct 16, 2015 · 3 comments
Assignees
Milestone

Comments

@johnzeringue
Copy link
Contributor

Currently, the concordia line is drawn by breaking it into equal lengths of t and approximating with bezier curves. As has been previously suggested by @noahmclean, it would be better to generate equal-length segments instead.


@noahmclean, you mentioned that you had code for creating equal-length concordia segments in #27. Do you still have that code? I'm interested in implementing this in Topsoil before writing an overview of how we plot everything.

@noahmclean
Copy link

Here's a sketch for what I had in mind, though I can't find where I implemented this code originally. The document has an outline of the algorithm I was using, and then a worked problem with a particularly nasty Tera-Wasserburg view. It hasn't been proofread closely -- let me know if there are any typos/mistakes or if you think of a better way of doing this. And a last note: I wouldn't spend too much time looking for exponential-optimized algorithms, as we'll be using this frequently for functions that don't have simple exponential forms as well.

Apparently Github doesn't like pdf and tex attachments, and I don't know how to Git, so here are the docs in a Google Drive folder:
https://drive.google.com/folderview?id=0B8o2Mni1YcPFMkEzQnJSZllBQTQ&usp=sharing

@johnzeringue
Copy link
Contributor Author

After playing with this on my machine in Python, it seems perfect. I used the same quality measure as you (max(dists) / min(dists)). After a few cases (most quite tough), I found the algorithm needed no more than 55 iterations to bring the quality below 1 + 10e-13. 😎

I'll add this in this week and there should be a big performance boost, since we'll need a lot less Bezier segments with this feature to attain the same (or higher!) visual quality.

@bowring
Copy link
Member

bowring commented Oct 27, 2015

yeah - progress through collaboration!

On Tue, Oct 27, 2015 at 12:07 AM, John Zeringue notifications@github.com
wrote:

After playing with this on my machine in Python, it seems perfect. I used
the same quality measure as you (max(dists) / min(dists)). After a few
cases (most quite tough), I found the algorithm needed no more than 55
iterations to bring the quality below 1 + 10e-13. [image: 😎]

I'll add this in this week and there should be a big performance boost,
since we'll need a lot less Bezier segments with this feature to attain the
same (or higher!) visual quality.


Reply to this email directly or view it on GitHub
#219 (comment).

Jim Bowring
C. Richard Crosby Distinguished Teaching Co-Chair
Principal Investigator, www.CIRDLES.org, www.github.com/cirdles

Computer Science
College of Charleston
66 George Street
Charleston, SC 29424

Google Voice: 843.608.1399 (preferred)
Google Email: bowring@gmail.com

Office:
Harbor Walk East (360 Concord Street) Room 308
843.953.0805
http://stono.cs.cofc.edu/~bowring/
bowringj@cofc.edu

R. Buckminster Fuller (1972):
If humanity is to survive aboard our planet, it must become universally
literate and preoccupied with inherently cooperative Comprehensive
Anticipatory Design Science in which every human is concerned with
accomplishing the comfortably sustainable well-faring of all other humans.

@johnzeringue johnzeringue self-assigned this Oct 27, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants