This page is under development. Comments are welcome, but please load any comments in the comments section at the bottom of the page. Please include your wiki MONIKER and date in your comment with the same courtesy that I will give you. Aside from your courtesy, your wiki MONIKER and date as a signature and minimal good faith of any internet post are the rules of this TCL-WIKI. Its very hard to reply reasonably without some background of the correspondent on his WIKI bio page. Thanks, gold 12Dec2018
gold Here is an eTCL script on finding seked angles of Ancient Egypt for the etcl console. After you read the Rhind papyrus, an ancient Egyptian asks you for a roof of 12 palms for his house. What is the angle of the roof in degrees?
In planning any software, there is a need to develop testcases. With back of envelope calculations, we can develop a number of peg points to check output of program.
A seked is what moderns might call the cotangent ratio of a right triangle. The vertical side is a one cubit rod of 7 palms height and the base is some measure of palms and fingers. In this problem set, the cubit rod is fixed at 7 palms highand each palm measure of the base can be divided into 4 fingers. For example,a seked measurement might be given as 12 palms and 3 fingers.The formula for a seked ratio of 7/12 is(180 / pi) * atan(7 / 12) = 30.2 degrees, which can be pasted into google search engine and solve. The formula for a seked ratio of7 palms /12 palms 3 fingers is (180. / pi) * atan(7 / (12 + (3 / 4))) = 28.7 degrees.
In the Ahmes papyrus of 1650 BCE, a pyramid with a height of 250 cubits and base of 360 cubits was found to have a seked of 5+1/25 or 5.04 palms.One can paste (7 * .5 * 360) / 250 = 5.04 in decimal units.
For the testcases, one would like to get realistic testcases from the ancient sources.The gist of a scribal copy exercise (1200 BCE.) formulates a ramp as 730 cubits,55 cubits wide,60 cubits high, and 30 cubits high in the middle and asks how many bricks are needed.The implied seked ratio, angle, and slope is of interest here. One can postulate an Egyptian mud brick as 0.725 cubit long, 0.362 cubit wide, and 0.244 cubit height.One can paste a conditional answer in google as(730. * 55. * 30.) / (.725 * .362 * .244) = 18.8E6 bricks.For the angle, one can paste (180. / pi) * arctan (60. / 730.) = 4.69 degrees.In terms of the TCL console program the units cancel out, so the command seked can be entered as seked 30 730 (cubits).The TCL console program calculates the seked ratio as 7:70 andthe angle as 4.7 degrees. Dividing the ratio 7:70 by 7, gives a slope of 1:10.
console session
1 height 60 base 730 angle 4.69868051729944 complement 85.30131948270056 bricks 18809203.314292498 rev seked 7: 70.0 sek 70.0
In modern terms, the causeway to the great pyramid might have had a slope of 1:10 or 0.1. This equates to an angle of 5.7 degrees, (180. / pi) * atan(1 / 10) = 5.7 degrees. From our calculations, a seked of 70:3 palms:fingers would have an angle of 5.65 degrees with the horizon. From the proportions at Giza and other conjectures, the causeway is postulated to be 430 meters long, 43 meters high, and 10 meters wide. For the angle, one can paste (180. / pi) * arctan(43. / 430.) = 5.7 degrees. Using the above mud brick as a concept, one could paste (.5 * (430. * 43. * 10.)) / (.38 * .19 * .128) = 10E6 bricks. For stone blocks, there might be (.5 * (430. * 43. * 10.)) / (.8 * .8 * 1.6) = 9E4 blocks.
For an estimate of the number of bricks or stone blocks, one can use pseudocode and some one line procs from Oneliner's Pie in the Sky.
pseudocode: number of blocks = volume of structure over volume of block proc rectangularprismvolumex {aa bb cc } { return [ expr { $aa*$bb*$cc }] };# from [Oneliner's Pie in the Sky] pseudocode: proc bricks { aa bb cc } { volume of structure over volume of block;return} pseudocode: The ramp volume is half a rectangular prism volume. pseudocode: proc bricks { aa bb cc } { .5* [rectangularprismvolumex $aa $bb $cc] over rectangularprismvolume .8 .8 1.6 } proc bricks { aa bb cc } { set struct [ rectangularprismvolumex $aa $bb $cc ] set brick [ rectangularprismvolumex .8 .8 1.6x ] set results [ expr { (0.5*$struct) / $brick } ] return $results }
quantity | units | ratio | angle | units | method |
---|---|---|---|---|---|
8.0 | palms | 7/8 | 41.1 | degrees | ti30 hand calculation |
9.0 | palms | 7/9 | 37.87 | degrees | ti30 hand calculation |
10.0 | palms | 7/10 | 34.9 | degrees | ti30 hand calculation |
11.0 | palms | 7/11 | 32.47 | degrees | ti30 hand calculation |
12 | palms | 7/12 | 30.2 | degrees | ti30 hand calculation |
13 | palms | 7/13 | 28.3 | degrees | ti30 hand calculation |
14 | palms | 7/14 | 26.56 | degrees | ti30 hand calculation |
15 | palms | 7/15 | 25.0 | degrees | ti30 hand calculation |
20:3 | palms:fingers | 7/(20+3/4) | 18.6 | degrees | goggle paste calculation |
25:3 | palms:fingers | 7/(25+3/4) | 15.2 | degrees | goggle paste calculation |
40:3 | palms:fingers | 7/(40+3/4) | 9.74 | degrees | goggle paste calculation |
70:3 | palms:fingers | 7/(70+3/4) | 5.65 | degrees | goggle paste calculation |
# using ASED editor for TCL code # Impotep’s step pyramid for King Djoser was 62 meters height and 124 meters base # cubit = 0.52 meters , about 119.23 cubits height and 238.461 cubits height [ expr { .5*(124./62.)* 7. } ] #= 7 palms proc seked_7 119.23 238.461 gives 7.0 palms decimal [ expr { acotand (.5*(124./62.)) } ] #= modern angle units. 45 degrees # proc pyra_degrees 119.23 238.461 returns 44.99987986316494, rounds to 45 degrees # King Khufu’s Great Pyramid at Giza was 146.6 meters height and 230.3 meters base # cubit = 0.52 meters , about 281.923 cubits height and 558.269 cubits height [ expr { .5*(230.3/146.6)* 7. } ] #= 5.5 palms [ expr { acotand (.5*(215.5/143.5)) } ] #= modern angle units. 51.8 degrees # King Khafre’s Pyramid at Giza was 143.5 meters height and 215.25 meters base # cubit = 0.52 meters , about 275.961 cubits height and 413.942 cubits height [ expr { .5*(215.25/143.5)* 7. } ] #= 5.25 palms [ expr { acotand (.5*(215.5/143.5)) } ] #= modern angle units. 53.13 degrees # Piankhy’s Nubian pyramid was 10 meters height and 8 meters base # cubit = 0.52 meters , about 19.230 cubits height and 15.384 cubits height [ expr { .5*(8./10.)* 7. } ] #= 2.8 palms [ expr { acotand (.5*(8./10.)) } ] #= modern angle units. 68.2 degrees # Taharka’s Nubian pyramid at Nuri was 50 meters height and 51.75 meters base # cubit = 0.52 meters , about 96.153 cubits height and 99.519 cubits height [ expr { .5*(51.75/50.)* 7. } ] #= 3.6 palms [ expr { acotand (.5*(51.75/50.)) } ] #= modern angle units. 62.6 degrees # Aztec pyramid of the sun was 73.2 meters height and 230.3 meters base # cubit = 0.52 meters , about 140.769 cubits height and 442.884 cubits height [ expr { .5*( 230.3 /73.2)* 7. } ] #= 11. palms [ expr { acotand (.5*( 230.3 /73.2)) } ] #= modern angle units. 32.5 degrees # Mayan temple of Kukulkan pyramid was 30 meters height and 55.3 meters base # cubit = 0.52 meters , about 57.692 cubits height and 106.346 cubits height [ expr { .5*(55.3 / 30.)* 7. } ] #= 6.45 palms [ expr { acotand (.5*(55.3 / 30.)) } ] #= modern angle units. 47.3 degrees [ tan 1. ] #= 1.5574077246549023 for radians [atan 1 ] #= for radian measure proc pie {} {expr acos(-1)} # AMG [* [/ 180. [pie]] [atan 1 ] ] #= 45.0 for degree measure proc acotandx {aa} {return [set aa [/ [acos $aa] [asin $aa ]];set aa [* $aa [/ 180. [pie]] ]]} ::math::trig::tand angle #= degree measure ::math::trig::cotand angle #= degree measure # Calculate the acotangent of the angle (in degrees) package require Tk package require math::numtheory package require math::constants package require math::trig package require math #package require math::combinatorics #namespace path {::tcl::mathop ::tcl::mathfunc math::numtheory } namespace path {::tcl::mathop ::tcl::mathfunc math::numtheory math::trig math::constants} [ acotand 1 ] #=45.0 proc pyramid_degrees {hh bb} { [ acotand [expr {(.5*$bb/$hh) } ]] } # usage pyramid has hh height bb base, units cancel out # acotand func is in math::trig of TCLLIB. proc pyra_degrees {hh bb} { [ acotand [* .5 [/ $bb $hh] ]] } # spaces must be kept # usage pyramid_degrees 57.692 106.346 47.334157521261254 proc seked_7 {hh bb} { [* .5 7. [/ $bb $hh ] ] } # usage pyramid has hh height bb base, units cancel out # for Great Pyramid, seked_7 146.6 230.3 gives 5.49 palms in decimals
Pyramid name | Seked digital * | Angle degrees | comment, if any | |
Egypt | Estimate | * formulas under test | ||
Maidum | 5.50849420849421 | 51.88 | ||
N. Stone Pyramid | 4.62934362934363 | 43.6 | ||
Bent pyramid(1) | 5.78880308880309 | 54.52 | ||
Bent pyramid(2) | 4.60279922779923 | 43.35 | ||
Khufu | 5.50743243243243 | 51.87 | ||
Khafre | 5.64121621621622 | 53.13 | ||
Menkaure (a) | 5.43523166023166 | 51.19 | ||
Menkaure (b) | 5.50530888030888 | 51.85 | ||
Userkaf | 5.62741312741313 | 53 | ||
Sahure | 5.32905405405405 | 50.19 | ||
Neferikare | 5.62741312741313 | 53 | ||
Nyuserre | 5.50530888030888 | 51.85 | ||
Teti | 5.62741312741313 | 53 | ||
Pepi II | 5.62741312741313 | 53 |
based on Sekeds and the Geometry of the Egyptian Pyramids by David Furlong
Due size of following jpgs, leaving pictures as point and click.
The clay tablet include redundant terms in different expressions, usually as reciprocal values in sexagesimal fractions. Like the Ancient Egyptians, the Babylonian system was effectively 1/slope or x/y like the Ancient Eqgyptians, meaning the inversion to the modern usage of y/x. Example of rare complete line formula from tablets: 1 kus 15 sa.gal >> in one cubit 15 is the coefficient dimension <dip or slope>. Usually less revealing or broken off text was 15 igi.gub transliterates >> 15 is reciprocal coefficient. Listing of degrees, decimal cotangent ratio, and decimal tangent are all modern units not on the tablet.
Angle coefficients for cuneiform math from clay tablets | modern units | modern units | modern units | ||
---|---|---|---|---|---|
coeff. in sexagesimal fractions | x | y | degrees | cotangent ratio | decimal tangent |
1; | 1 | 1 | 45.0 | 1.0 | 1. |
0;30 | 2 | 1 | 26.56 | 2. | 0.5 |
0;20 | 3 | 1 | 18.43 | 3. | 0.333 |
0;15 | 4 | 1 | 14.04 | 4. | 0.25 |
0;12 | 5 | 1 | 11.309 | 5. | 0.2 |
0;10 | 6 | 1 | 9.462 | 6. | 0.1666 |
0;09 | 7 | 1 | 8.130 | 7. | 0.142 |
0;08 | 8 | 1 | 7.125 | 8. | 0.125 |
0;07 | 9 | 1 | 6.340 | 9. | 0.111 |
0;06 | 10 | 1 | 5.710 | 10. | 0.1 |
0;09 | 1/7 | 1 | 8.130 | 7. | 0.142 |
0;10 | 1/6 | 1 | 9.462 | 6. | 0.1666 |
0;12 | 1/5 | 1 | 11.309 | 5. | 0.2 |
0;15 | 1/4 | 1 | 14.036 | 4. | 0.25 |
0;20 | 1/3 | 1 | 18.435 | 3. | 0.333 |
0;30 | 1/2 | 1 | 26.565 | 2. | 0.5 |
0;40 | 2/3 | 1 | 33.690 | 1.5 | 0.666 |
# Pretty print version from autoindent # and ased editor # written on Windows XP on eTCL # program :estimating seked (cotan ratio) and angles # from egyptian pyramids # code from TCL WIKI, eTCL console script # 8jun2011, [gold] console show proc radianstodegconst {} {return [ expr {180./[pi]} ]} proc pi {} {expr acos(-1)} set counter 1 set past 0 proc seked { aa bb } { global counter past set angle1 [ expr { ($aa*1.)/($bb*1.) } ] set angle1 [ expr { atan($angle1) } ] set angle1 [ expr { $angle1* [radianstodegconst]} ] puts "$counter height $aa base $bb angle $angle1 " incr counter wm title . "estimating seked (cotan ratio)" } seked 7 12
console show proc rectangularprismvolumex {aa bb cc } { return [ expr { $aa*$bb*$cc }] } proc bricks { aa bb cc } { set struct [ rectangularprismvolumex $aa $bb $cc ] set brick [ rectangularprismvolumex .8 .8 1.6 ] set results [ expr { (.5*$struct) / $brick } ] return $results } puts " bricks [ bricks 430. 43. 10.] "
gold 21Jul2020. Important Note. This page were largely developed on older versions of TCL4 and ETCL versions. These procedures were developed on older versions of TCL4. I do not doubt that alternate solutions, better and more elegant solutions exist on the later elaborate TCL releases. Mostly I use the expired ETCL on an older personal computer. This page is not a replacement for the current TCL core and TCCLIB with much improvement since TCL4 and other <faster> language constructs. See better routines and current methods for angle reduction, sin, cos, pi, etc in the TCL core distribution and TCLLIB. As of Jul2018, the TCLLIB has developed code for trig angles in degrees, trig inverse, and hyper functions in degrees, and angle reduction in radians and degrees. This supplemental trig.tcl, trigtest.tcl, and trig.man code is posted on the TCLLIB website. This math::trig.tcl seems really exciting work, which will keep TCL in pace with some of the other brand name languages (math oriented, I mean). Some of the TCL library code is posted as pending on the TCLLIB website, and sometimes not really in the main TCL distribution yet, so its worthwhile to investigate and run searches on the pending TCLLIB code also.
Please place any comments here, Thanks.
Category Numerical Analysis | Category Toys | Category Calculator | Category Mathematics | Category Example | Toys and Games | Category Games | Category Application | Category GUI |