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

Enlarge narrow angles #7

Closed
MarcinCiura opened this issue Sep 14, 2017 · 3 comments
Closed

Enlarge narrow angles #7

MarcinCiura opened this issue Sep 14, 2017 · 3 comments
Assignees

Comments

@MarcinCiura
Copy link

MarcinCiura commented Sep 14, 2017

Privet, Sergey. This is not a bug, just a suggestion how to improve your excellent edition. You might consider increasing the length of the sides in narrow acute angles. To see what I mean, please compare the yellow and blue angles on page 32 of byrne_context.pdf with their equivalents on Byrne's page 4: https://archive.org/stream/firstsixbooksofe00eucl#page/4/mode/2up

I attach an image I made with a simple formula (the formula is copied from my XeLaTeX code so the variable names probably do not match yours):

\pgfmathgreater{\angle}{60}
\pgfmathifthenelse
{\pgfmathresult}
{\sidelength}
{\sidelength * (90 - \angle) / 60}

Caveat: you will probably want to keep the non-scaled way of displaying for adjacent angles that share their sides.
Proposition 1.4

@jemmybutton jemmybutton self-assigned this Sep 14, 2017
@jemmybutton
Copy link
Owner

jemmybutton commented Sep 14, 2017

Hi, Mciura! Thank you, this is a great idea. It can be done by hand now (or by adding some simple macro, that would draw resized angle instead of ordinary one), but I'd rather automate this. I guess, the right method to implement this feature is by changing the way angles are drawn. Currently, they are drawn one by one, and there's no way of knowing in advance which one has adjacent angles and which one hasn't. So, it would be adequate to define all the angles first, making a list of them, then automatically compose all the blocks of adjacent angles and then draw these blocks of adjacent angles resized accordingly (maybe it would also be good to downscale larger angle blocks a little). I'll try to do it in the near future.

@jemmybutton
Copy link
Owner

@mciura And the first version is here https://github.com/jemmybutton/byrne-euclid/commit/ff094da5aadd00291eb990986431d1ac857c6eba
Before and after comparison:
anglesizecompensation
To get this working, instead of

draw byAngle(A, B, C, byyellow, 0);
draw byAngle(B, C, A, byblue, 0);
draw byAngle(C, A, B, byred, 0);

one should type

byAngleDefine(A, B, C, byyellow, 0);
byAngleDefine(B, C, A, byblue, 0);
byAngleDefine(C, A, B, byred, 0);
draw byNamedAngleResized;

I'll play a little with the compensation function (now it's kind of a random thing (1 + 3/4cosd(v)**2) for angles less than 180 degrees) and migrate all the pictures to the new method.

@jemmybutton
Copy link
Owner

There's angle size compensation everywhere in the book now https://github.com/jemmybutton/byrne-euclid/commit/f38d6aaf0bdd858f439bcf97b6b8637468bb7971. It may require some tweaking, but in general everything seems to work ok.
byrne_context.pdf

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

2 participants