@@ -997,12 +997,62 @@ <h4 style="font-size:160%;margin:7px">Trigonometry</h4>
997997 return bestMatch ;
998998}
999999
1000+ function Asin ( x ) {
1001+ if ( typeof x !== 'number' || isNaN ( x ) || x <= 0 || x > 1 ) return null ;
1002+
1003+ let radian = null ;
1004+
1005+ if ( x >= 0.707 || x < 0.09 ) {
1006+ // Direct match
1007+ const match = closestValue ( x , 'sin' ) ;
1008+ if ( ! match ?. angle ) return null ;
1009+ const parsed = match . angle . match ( / r a d \( ( [ \d . ] + ) \) / ) ;
1010+ if ( ! parsed ) return null ;
1011+ radian = parseFloat ( parsed [ 1 ] ) ;
1012+ } else {
1013+ // Reflective zone
1014+ const inverse = 1.6 - x ;
1015+ const match = closestValue ( inverse , 'cos' ) ;
1016+ if ( ! match ?. angle ) return null ;
1017+ const parsed = match . angle . match ( / r a d \( ( [ \d . ] + ) \) / ) ;
1018+ if ( ! parsed ) return null ;
1019+ radian = parseFloat ( parsed [ 1 ] ) ;
1020+ }
1021+
1022+ return radian ;
1023+ }
1024+
1025+ function Acos ( x ) {
1026+ if ( typeof x !== 'number' || isNaN ( x ) || x <= 0 || x > 1 ) return null ;
1027+
1028+ let radian = null ;
1029+
1030+ if ( x > 0.707 && x < 0.995 ) {
1031+ // Direct match
1032+ const match = closestValue ( x , 'cos' ) ;
1033+ if ( ! match ?. angle ) return null ;
1034+ const parsed = match . angle . match ( / r a d \( ( [ \d . ] + ) \) / ) ;
1035+ if ( ! parsed ) return null ;
1036+ radian = parseFloat ( parsed [ 1 ] ) ;
1037+ } else {
1038+ // Reflective zone
1039+ const inverse = 1.6 - x ;
1040+ const match = closestValue ( inverse , 'sin' ) ;
1041+ if ( ! match ?. angle ) return null ;
1042+ const parsed = match . angle . match ( / r a d \( ( [ \d . ] + ) \) / ) ;
1043+ if ( ! parsed ) return null ;
1044+ radian = parseFloat ( parsed [ 1 ] ) ;
1045+ }
1046+
1047+ return radian ;
1048+ }
1049+
10001050function Atan ( x ) {
10011051 if ( typeof x !== 'number' || isNaN ( x ) || x <= 0 ) return null ;
10021052
10031053 let radian = null ;
10041054
1005- if ( x > 1 || x < 0.089 ) {
1055+ if ( x > 1 || x < 0.09 ) {
10061056 // Direct match
10071057 const match = closestValue ( x , 'tan' ) ;
10081058 if ( ! match ?. angle ) return null ;
@@ -2451,12 +2501,15 @@ <h6 style="font-size:160%;margin:7px">Area of a circle</h6>
24512501 const s = sin ( angle ) ;
24522502 const c = cos ( angle ) ;
24532503 const t = tan ( angle ) ;
2504+ const as = Asin ( angle ) ;
2505+ const ac = Acos ( angle ) ;
24542506 const at = Atan ( angle ) ;
2455-
24562507 output . innerText += `✅ Testing angle: ${ angle } \n\n` ;
24572508 output . innerText += `• sin(${ angle } ) = ${ s } \n` ;
24582509 output . innerText += `• cos(${ angle } ) = ${ c } \n` ;
24592510 output . innerText += `• tan(${ angle } ) = ${ t } \n` ;
2511+ output . innerText += `• Asin(${ angle } ) = ${ as } \n` ;
2512+ output . innerText += `• Acos(${ angle } ) = ${ ac } \n` ;
24602513 output . innerText += `• Atan(${ angle } ) = ${ at } \n` ;
24612514
24622515
0 commit comments