Select Git revision
scrollView.html
scrollView.html 36.91 KiB
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Scroll View</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<style>
[data-allowed-types="Point_Fact"] * {
color: #0000ff
}
[data-allowed-types="LineSegment_Fact"] * {
color: #008000
}
[data-allowed-types="Angle_Fact"] * {
color: #cf6806
}
[dropzone] {
/* background-color: grey; */
margin: 1px;
border-width: 1px;
border-style: dashed;
}
[data-fact-id] {
background-color: lightgray;
}
[data-hint-available] {
background-color: yellow
}
math {
display: inline flow-root;
align-items: center;
flex-wrap: wrap;
}
mi {
display: inline-flex;
align-items: center;
flex-wrap: nowrap;
}
.legacySlot {
width: 100px;
height: 100px;
margin: 50px;
border-width: 1px;
}
#rectangle {
width: 10px;
height: 10px;
position: absolute;
background-color: red;
}
</style>
<script src="jquery-3.7.1.slim.min.js"></script>
</head>
<body>
<!-- The canvas is initially hidden, it will be unhidden once the renderer is set up.
So, if that setup fails there is no empty space -->
<canvas id="math-mind-canvas" width="400" height="300" hidden></canvas>
<div id="scrollContainer">
<h3><math id="scroll-label">
No scroll selected yet.
</math></h3>
<p id="scroll-description" title='DefaultScroll' alt='No scroll loaded yet'>
<span> Given a triangle </span>
<math>
<mrow>
<ms> △<!-- △ --></ms>
<mi data-slot-id="http://mathhub.info/FrameIT/frameworld?TriangleProblem?A" />
<mi data-slot-id="http://mathhub.info/FrameIT/frameworld?TriangleProblem?B" />
<mi data-slot-id="http://mathhub.info/FrameIT/frameworld?TriangleProblem?C" />
</mrow>
</math>
right-angled at
<math>
<!--<mi>⦝</mi>--><!-- ⦝ -->
<mi data-slot-id="http://mathhub.info/FrameIT/frameworld?TriangleProblem_RightAngleAtC?rightAngleC" />
</math>
, the opposite side has length
<math>
<mrow>
<mi data-solution-id="http://mathhub.info/FrameIT/frameworld?OppositeLen/Solution?deducedLineCA">
</mi>
<mo>=</mo>
<mi>tan</mi>
<!--<mo>⁡</mo>-->
<mo>(</mo>
<mi data-slot-id="http://mathhub.info/FrameIT/frameworld?TriangleProblem_AngleAtB?angleB" />
<mo>)</mo>
<mo>×</mo>
<mi data-slot-id="http://mathhub.info/FrameIT/frameworld?OppositeLen/Problem?distanceBC" />
</mrow>
</math>.
</p>
<div id="scroll-depiction">
<svg width='100%' height='8cm' viewBox='-25 -25 300 300' version='1.1' id='triangle'
xmlns='http://www.w3.org/2000/svg' xmlns:svg='http://www.w3.org/2000/svg' preserveAspectRatio='xMinYMin meet'>
<g id='shape'
style='fill:none;stroke:#000000;stroke-linecap:butt;stroke-width:1;stroke-linejoin:miter;stroke-opacity:1'>
<path d='M 0,250 H 200 V 0 Z' id='triangle' />
<path id='angleABC' d='M 0,250 l 15.6,-19.5 a 25 25 0 0 1 9.4,19.5 z' />
<!-- M [corner] l [25*cos()],[-25*sin()] a 25 25 0 0 1 [25-25*cos()],[25*sin()]-->
<g id='angleBCA'>
<path id='rightAngle' d='M 200,250 v -25 a 25,25 0 0 0 -25,25 z' />
<circle style='fill:#000000;fill-opacity:1;stroke:none' id='rightAngleDot' cx='190' cy='240'
r='1.5' />
<!-- Corner - (40,40); 40 = 15/sqrt(2) + epsilon -->
</g>
</g>
<g id='labels' style='line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;'>
<foreignObject id='pointB' x='200' y='-25' width="25" height="25">
<math xmlns="http://www.w3.org/1998/Math/MathML"
data-slot-id="http://mathhub.info/FrameIT/frameworld?TriangleProblem?A" />
</foreignObject>
<foreignObject id='pointB' x='-25' y='250' width="25" height="25">
<math xmlns="http://www.w3.org/1998/Math/MathML"
data-slot-id="http://mathhub.info/FrameIT/frameworld?TriangleProblem?B" />
</foreignObject>
<foreignObject id='pointB' x='200' y='250' width="25" height="25">
<math xmlns="http://www.w3.org/1998/Math/MathML"
data-slot-id="http://mathhub.info/FrameIT/frameworld?TriangleProblem?C" />
</foreignObject>
<foreignObject id='pointB' x='30' y='225' width="50" height="25">
<math xmlns="http://www.w3.org/1998/Math/MathML"
data-slot-id='http://mathhub.info/FrameIT/frameworld?TriangleProblem_AngleAtB?angleB' />
</foreignObject>
<foreignObject id='pointB' x='145' y='225' width="50" height="25">
<math xmlns="http://www.w3.org/1998/Math/MathML"
data-slot-id='http://mathhub.info/FrameIT/frameworld?TriangleProblem_RightAngleAtC?rightAngleC' />
</foreignObject>
<foreignObject id='pointB' x='100' y='250' width="50" height="25">
<math xmlns="http://www.w3.org/1998/Math/MathML"
data-slot-id='http://mathhub.info/FrameIT/frameworld?OppositeLen/Problem?distanceBC' />
</foreignObject>
<foreignObject id='pointB' x='205' y='120' width="50" height="25">
<math xmlns="http://www.w3.org/1998/Math/MathML" style='color:#008000'
data-solution-id='http://mathhub.info/FrameIT/frameworld?OppositeLen/Solution?deducedLineCA' />
</foreignObject>
</g>
</svg>
</div>
</div>
<button type="button" title="Apply the scroll" onclick="applyScroll('')">Apply</button><br>
<p>You can right-click on yellow slots to get a hint.</p>
<script id="load-other-scripts">
/**
* Load all .js files for interactive scrolls. (So we can use e.g. Typescript)
*
* This is no more dangerous than having this file in the streaming assets.
* Any malicious code could just be written in here as well ¯\_(ツ)_/¯.
*/
function loadScript(url) {
const head = document.getElementsByTagName('head')[0];
const script = document.createElement('script');
script.type = 'text/javascript';
script.src = url;
head.appendChild(script);
}
loadScript("./build/Drop_facts.js")
loadScript("./build/Types.js")
loadScript("./build/API_Parsers.js")
loadScript("./build/SetScrollContent.js")
//loadScript("./scroll_interaction/webgl-demo.js")
</script>
<!-- <script src="./build/Math_Mind.js" type="module"></script> -->
<data id="Unity-Data-Interface" hidden
data-assignments='{"http://mathhub.info/FrameIT/frameworld?TriangleProblem?A":{"Item1":"(C)","Item2":"http://mathhub.info/FrameIT/frameworld?DefaultSituationSpace/SituationTheory1?fact310"},"http://mathhub.info/FrameIT/frameworld?TriangleProblem?B":{"Item1":"(B)","Item2":"http://mathhub.info/FrameIT/frameworld?DefaultSituationSpace/SituationTheory1?fact309"},"http://mathhub.info/FrameIT/frameworld?TriangleProblem?C":{"Item1":"C","Item2":""},"http://mathhub.info/FrameIT/frameworld?TriangleProblem_RightAngleAtC?rightAngleC":{"Item1":"⊾C","Item2":""},"http://mathhub.info/FrameIT/frameworld?OppositeLen/Problem?distanceBC":{"Item1":"BC","Item2":""},"http://mathhub.info/FrameIT/frameworld?TriangleProblem_AngleAtB?angleB":{"Item1":"∠ABC","Item2":""},"http://mathhub.info/FrameIT/frameworld?OppositeLen/Solution?deducedLineCA":{"Item1":"CA","Item2":""}}'
data-scroll-dynamic='{
"uri":{"parseAs":"string","content":"http://mathhub.info/FrameIT/frameworld?OppositeLen"},"label":{"parseAs":"MathMLElement","content":"<ms>Opposite Length Scroll</ms>"},"type":{"parseAs":"string","content":"Scroll"},"slots":[{"label":{"parseAs":"MathMLElement","content":"<mi>A</mi>"},"uri":{"parseAs":"string","content":"http://mathhub.info/FrameIT/frameworld?TriangleProblem?A"},"type":{"parseAs":"string","content":"Point_Fact"}},{"label":{"parseAs":"MathMLElement","content":"<mi>B</mi>"},"uri":{"parseAs":"string","content":"http://mathhub.info/FrameIT/frameworld?TriangleProblem?B"},"type":{"parseAs":"string","content":"Point_Fact"}},{"label":{"parseAs":"MathMLElement","content":"<mi>C</mi>"},"uri":{"parseAs":"string","content":"http://mathhub.info/FrameIT/frameworld?TriangleProblem?C"},"type":{"parseAs":"string","content":"Point_Fact"}},{"label":{"parseAs":"MathMLElement","content":"<mi><mrow><mo>⦝</mo><mi>C</mi></mrow></mi>"},"uri":{"parseAs":"string","content":"http://mathhub.info/FrameIT/frameworld?TriangleProblem_RightAngleAtC?rightAngleC"},"type":{"parseAs":"string","content":"Angle_Fact"}},{"label":{"parseAs":"MathMLElement","content":"<mi><mrow><mi>B</mi><mi>C</mi></mrow></mi>"},"uri":{"parseAs":"string","content":"http://mathhub.info/FrameIT/frameworld?OppositeLen/Problem?distanceBC"},"type":{"parseAs":"string","content":"LineSegment_Fact"}},{"label":{"parseAs":"MathMLElement","content":"<mi><mrow><mo>∠</mo><mi>A</mi><mi>B</mi><mi>C</mi></mrow></mi>"},"uri":{"parseAs":"string","content":"http://mathhub.info/FrameIT/frameworld?TriangleProblem_AngleAtB?angleB"},"type":{"parseAs":"string","content":"Angle_Fact"}}],"acquiredFacts":[{"label":{"parseAs":"MathMLElement","content":"<mi><mrow><mi>C</mi><mi>A</mi></mrow></mi>"},"uri":{"parseAs":"string","content":"http://mathhub.info/FrameIT/frameworld?OppositeLen/Solution?deducedLineCA"},"type":{"parseAs":"string","content":"LineSegment_Fact"}}],
"description": {
"parseAs": "HTMLElement",
"content": "<scroll-description title='OppositeLenScroll' alt='Given a triangle △ABC right-angled at ⊾C, the opposite side has length CA = tan(∠ABC) ⋅ BC.'><span>Given a triangle</span><math><mi>△<!-- △ --></mi><mi data-slot-id='http://mathhub.info/FrameIT/frameworld?TriangleProblem?A'></mi><mi data-slot-id='http://mathhub.info/FrameIT/frameworld?TriangleProblem?B'></mi><mi data-slot-id='http://mathhub.info/FrameIT/frameworld?TriangleProblem?C'></mi></math><span>right-angled at</span><math><!--<mi>⦝</mi>--><!-- ⦝ --><mi data-slot-id='http://mathhub.info/FrameIT/frameworld?TriangleProblem_RightAngleAtC?rightAngleC'></mi></math>,<br /><span>the opposite side has length</span><math><mi data-solution-id='http://mathhub.info/FrameIT/frameworld?OppositeLen/Solution?deducedLineCA'></mi><mo>=</mo><mrow><mi>tan</mi><!--<mo>⁡</mo>--><mo>(</mo><mi data-slot-id='http://mathhub.info/FrameIT/frameworld?TriangleProblem_AngleAtB?angleB'></mi><mo>)</mo></mrow><mo>⁢</mo><mi data-slot-id='http://mathhub.info/FrameIT/frameworld?OppositeLen/Problem?distanceBC'></mi></math><span>.</span> </scroll-description>"
},
"depiction": {
"parseAs": "HTMLElement",
"content": "<svg width='8cm'height='8cmm'viewBox='-25 -25 300 300'version='1.1'id='triangle'xmlns='http://www.w3.org/2000/svg'xmlns:svg='http://www.w3.org/2000/svg'><g id='shape'style='fill:none;stroke:#000000;stroke-linecap:butt;stroke-width:1;stroke-linejoin:miter;stroke-opacity:1'><path d='M 0,250 H 200 V 0 Z'id='triangle'/><path id='angleABC'd='M 0,250 l 15.6,-19.5 a 25 25 0 0 1 9.4,19.5 z'/><!--M[corner]l[25*cos()],[-25*sin()]a2525001[25-25*cos()],[25*sin()]--><g id='angleBCA'><path id='rightAngle'd='M 200,250 v -25 a 25,25 0 0 0 -25,25 z'/><circle style='fill:#000000;fill-opacity:1;stroke:none'id='rightAngleDot'cx='190'cy='240'r='1.5'/><!--Corner-(40,40);40=15/sqrt(2)+epsilon--></g></g><g id='labels'style='line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;'><foreignObject id='pointB'x='200'y='-25'width='25'height='25'><math xmlns='http://www.w3.org/1998/Math/MathML'data-slot-id='http://mathhub.info/FrameIT/frameworld?TriangleProblem?A'/></foreignObject><foreignObject id='pointB'x='-25'y='250'width='25'height='25'><math xmlns='http://www.w3.org/1998/Math/MathML'data-slot-id='http://mathhub.info/FrameIT/frameworld?TriangleProblem?B'/></foreignObject><foreignObject id='pointB'x='200'y='250'width='25'height='25'><math xmlns='http://www.w3.org/1998/Math/MathML'data-slot-id='http://mathhub.info/FrameIT/frameworld?TriangleProblem?C'/></foreignObject><foreignObject id='pointB'x='30'y='225'width='50'height='25'><math xmlns='http://www.w3.org/1998/Math/MathML'data-slot-id='http://mathhub.info/FrameIT/frameworld?TriangleProblem_AngleAtB?angleB'/></foreignObject><foreignObject id='pointB'x='145'y='225'width='50'height='25'><math xmlns='http://www.w3.org/1998/Math/MathML'data-slot-id='http://mathhub.info/FrameIT/frameworld?TriangleProblem_RightAngleAtC?rightAngleC'/></foreignObject><foreignObject id='pointB'x='100'y='250'width='50'height='25'><math xmlns='http://www.w3.org/1998/Math/MathML'data-slot-id='http://mathhub.info/FrameIT/frameworld?OppositeLen/Problem?distanceBC'/></foreignObject><foreignObject id='pointB'x='205'y='120'width='50'height='25'><math xmlns='http://www.w3.org/1998/Math/MathML'style='color:#008000'data-solution-id='http://mathhub.info/FrameIT/frameworld?OppositeLen/Solution?deducedLineCA'/></foreignObject></g></svg>"
}
}'>
</data>
<data id="Scroll-Dynamic-Old" hidden data-scroll-dynamic='{
"ref": "http://mathhub.info/FrameIT/frameworld?OppositeLen",
"label": "OppositeLen",
"description": "<scroll-description title='OppositeLenScroll' alt='Given a triangle △ABC right-angled at ⊾C, the opposite side has length CA = tan(∠ABC) ⋅ BC.'> <span>Given a triangle</span> <math> <mi>△<!-- △ --></mi> <mi data-slot-id='http://mathhub.info/FrameIT/frameworld?TriangleProblem?A'></mi> <mi data-slot-id='http://mathhub.info/FrameIT/frameworld?TriangleProblem?B'></mi> <mi data-slot-id='http://mathhub.info/FrameIT/frameworld?TriangleProblem?C'></mi> </math> <span>right-angled at</span> <math> <!--<mi>⦝</mi>--><!-- ⦝ --> <mi data-slot-id='http://mathhub.info/FrameIT/frameworld?TriangleProblem_RightAngleAtC?rightAngleC'></mi> </math>,<br /> <span>the opposite side has length</span> <math> <mi data-solution-id='http://mathhub.info/FrameIT/frameworld?OppositeLen/Solution?deducedLineCA'></mi> <mo>=</mo> <mrow> <mi>tan</mi> <!--<mo>⁡</mo>--> <mo>(</mo> <mi data-slot-id='http://mathhub.info/FrameIT/frameworld?TriangleProblem_AngleAtB?angleB'></mi> <mo>)</mo> </mrow> <mo>⁢</mo> <mi data-slot-id='http://mathhub.info/FrameIT/frameworld?OppositeLen/Problem?distanceBC'></mi> </math> <span>.</span> <div> <svg width='50mm' height='45mm' viewBox='35 0 90 70' version='1.1' id='triangle' xmlns='http://www.w3.org/2000/svg' xmlns:svg='http://www.w3.org/2000/svg'> <g id='shape'> <path style='fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1' d='M 42.871972,64.67128 H 84.290656 V 7.6297578 Z' id='triangle' /> <path id='angleABC' style='fill:none;stroke:#000000;stroke-width:0.265;stroke-dasharray:none;stroke-opacity:1' d='m 46.024276,60.304806 a 5.3589964,5.3589964 0 0 1 2.252109,4.366474 h -5.358996 z' /> <g id='angleBCA'> <path style='fill:none;stroke:#000000;stroke-width:0.264999;stroke-dasharray:none;stroke-opacity:1' id='rightAngle' d='m 78.972396,64.665062 a 5.3308268,5.3308268 0 0 1 5.330827,-5.330827 v 5.330827 z' /> <circle style='fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264999;stroke-dasharray:none;stroke-opacity:1' id='rightAngleDot' cx='82.081886' cy='62.813831' r='0.32113415' /> </g> </g> <g id='labels' style='font-size:4.23333px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.264583' > <text xml:space='preserve' x='39.242592' y='67.117035' id='pointB' style='fill:#0000ff' data-slot-id='http://mathhub.info/FrameIT/frameworld?TriangleProblem?B'>B</text> <text xml:space='preserve' x='85.100548' y='68.080437' id='pointC' style='fill:#0000ff' data-slot-id='http://mathhub.info/FrameIT/frameworld?TriangleProblem?C'>C</text> <text xml:space='preserve' x='84.650963' y='6.551136' id='pointA' style='fill:#0000ff' data-slot-id='http://mathhub.info/FrameIT/frameworld?TriangleProblem?A'>A</text> <text xml:space='preserve' x='48.234348' y='62.492699' id='angleAtB' style='fill:#ffcc00' data-slot-id='http://mathhub.info/FrameIT/frameworld?TriangleProblem_AngleAtB?angleB'>∠ABC</text> <text xml:space='preserve' x='71.548683' y='60.951256' id='rightAngleAtC' style='fill:#ffcc00' data-slot-id='http://mathhub.info/FrameIT/frameworld?TriangleProblem_RightAngleAtC?rightAngleC'>⊾C</text> <text xml:space='preserve' x='59.409813' y='68.273117' id='distanceBC' style='fill:#008000' data-slot-id='http://mathhub.info/FrameIT/frameworld?OppositeLen/Problem?distanceBC'>BC</text> <text xml:space='preserve' x='84.972092' y='35.260529' id='solutionCA' style='fill:#008000' data-solution-id='http://mathhub.info/FrameIT/frameworld?OppositeLen/Solution?deducedLineCA'>CA</text> </g> </svg> </div> </scroll-description>",
"requiredFacts": [
{
"tp": {
"kind": "OMS",
"uri": "http://mathhub.info/MitM/core/geometry?3DGeometry?point"
},
"df": null,
"ref": {
"kind": "OMS",
"uri": "http://mathhub.info/FrameIT/frameworld?TriangleProblem?A"
},
"kind": "general",
"label": "A"
},
{
"tp": {
"kind": "OMS",
"uri": "http://mathhub.info/MitM/core/geometry?3DGeometry?point"
},
"df": null,
"ref": {
"kind": "OMS",
"uri": "http://mathhub.info/FrameIT/frameworld?TriangleProblem?B"
},
"kind": "general",
"label": "B"
},
{
"tp": {
"kind": "OMS",
"uri": "http://mathhub.info/MitM/core/geometry?3DGeometry?point"
},
"df": null,
"ref": {
"kind": "OMS",
"uri": "http://mathhub.info/FrameIT/frameworld?TriangleProblem?C"
},
"kind": "general",
"label": "C"
},
{
"tp": {
"kind": "OMA",
"applicant": {
"kind": "OMS",
"uri": "http://mathhub.info/MitM/Foundation?Logic?ded"
},
"arguments": [
{
"kind": "OMA",
"applicant": {
"kind": "OMS",
"uri": "http://mathhub.info/MitM/Foundation?Logic?eq"
},
"arguments": [
{
"kind": "OMS",
"uri": "http://mathhub.info/MitM/Foundation?RealLiterals?real_lit"
},
{
"kind": "OMA",
"applicant": {
"kind": "OMS",
"uri": "http://mathhub.info/MitM/core/geometry?Geometry/Common?angle_between"
},
"arguments": [
{
"kind": "OMS",
"uri": "http://mathhub.info/FrameIT/frameworld?TriangleProblem?B"
},
{
"kind": "OMS",
"uri": "http://mathhub.info/FrameIT/frameworld?TriangleProblem?C"
},
{
"kind": "OMS",
"uri": "http://mathhub.info/FrameIT/frameworld?TriangleProblem?A"
}
]
},
{
"kind": "OMLIT<Double>",
"type": "http://mathhub.info/MitM/Foundation?RealLiterals?real_lit",
"value": 90.0
}
]
}
]
},
"df": null,
"ref": {
"kind": "OMS",
"uri": "http://mathhub.info/FrameIT/frameworld?TriangleProblem_RightAngleAtC?rightAngleC"
},
"kind": "general",
"label": "⊾C"
},
{
"lhs": {
"kind": "OMA",
"applicant": {
"kind": "OMS",
"uri": "http://mathhub.info/MitM/core/geometry?Geometry/Common?metric"
},
"arguments": [
{
"kind": "OMS",
"uri": "http://mathhub.info/FrameIT/frameworld?TriangleProblem?B"
},
{
"kind": "OMS",
"uri": "http://mathhub.info/FrameIT/frameworld?TriangleProblem?C"
}
]
},
"valueTp": {
"kind": "OMS",
"uri": "http://mathhub.info/MitM/Foundation?RealLiterals?real_lit"
},
"value": null,
"proof": null,
"ref": {
"kind": "OMS",
"uri": "http://mathhub.info/FrameIT/frameworld?OppositeLen/Problem?distanceBC"
},
"kind": "veq",
"label": "BC"
},
{
"lhs": {
"kind": "OMA",
"applicant": {
"kind": "OMS",
"uri": "http://mathhub.info/MitM/core/geometry?Geometry/Common?angle_between"
},
"arguments": [
{
"kind": "OMS",
"uri": "http://mathhub.info/FrameIT/frameworld?TriangleProblem?A"
},
{
"kind": "OMS",
"uri": "http://mathhub.info/FrameIT/frameworld?TriangleProblem?B"
},
{
"kind": "OMS",
"uri": "http://mathhub.info/FrameIT/frameworld?TriangleProblem?C"
}
]
},
"valueTp": {
"kind": "OMS",
"uri": "http://mathhub.info/MitM/Foundation?RealLiterals?real_lit"
},
"value": null,
"proof": null,
"ref": {
"kind": "OMS",
"uri": "http://mathhub.info/FrameIT/frameworld?TriangleProblem_AngleAtB?angleB"
},
"kind": "veq",
"label": "∠ABC"
}
],
"acquiredFacts": [
{
"lhs": {
"kind": "OMA",
"applicant": {
"kind": "OMS",
"uri": "http://mathhub.info/MitM/core/geometry?Geometry/Common?metric"
},
"arguments": [
{
"kind": "OMS",
"uri": "http://mathhub.info/FrameIT/frameworld?TriangleProblem?C"
},
{
"kind": "OMS",
"uri": "http://mathhub.info/FrameIT/frameworld?TriangleProblem?A"
}
]
},
"valueTp": {
"kind": "OMS",
"uri": "http://mathhub.info/MitM/Foundation?RealLiterals?real_lit"
},
"value": {
"kind": "OMA",
"applicant": {
"kind": "OMS",
"uri": "http://mathhub.info/MitM/core/arithmetics?RealArithmetics?multiplication"
},
"arguments": [
{
"kind": "OMA",
"applicant": {
"kind": "OMS",
"uri": "http://mathhub.info/MitM/Foundation?Trigonometry?tan"
},
"arguments": [
{
"kind": "OMA",
"applicant": {
"kind": "OMS",
"uri": "http://gl.mathhub.info/MMT/LFX/Sigma?Symbols?Projl"
},
"arguments": [
{
"kind": "OMS",
"uri": "http://mathhub.info/FrameIT/frameworld?TriangleProblem_AngleAtB?angleB"
}
]
}
]
},
{
"kind": "OMA",
"applicant": {
"kind": "OMS",
"uri": "http://gl.mathhub.info/MMT/LFX/Sigma?Symbols?Projl"
},
"arguments": [
{
"kind": "OMS",
"uri": "http://mathhub.info/FrameIT/frameworld?OppositeLen/Problem?distanceBC"
}
]
}
]
},
"proof": {
"kind": "OMA",
"applicant": {
"kind": "OMS",
"uri": "http://mathhub.info/MitM/Foundation?InformalProofs?proofsketch"
},
"arguments": [
{
"kind": "OMA",
"applicant": {
"kind": "OMS",
"uri": "http://mathhub.info/MitM/Foundation?Logic?eq"
},
"arguments": [
{
"kind": "OMS",
"uri": "http://mathhub.info/MitM/Foundation?RealLiterals?real_lit"
},
{
"kind": "OMA",
"applicant": {
"kind": "OMS",
"uri": "http://mathhub.info/MitM/core/geometry?Geometry/Common?metric"
},
"arguments": [
{
"kind": "OMS",
"uri": "http://mathhub.info/FrameIT/frameworld?TriangleProblem?C"
},
{
"kind": "OMS",
"uri": "http://mathhub.info/FrameIT/frameworld?TriangleProblem?A"
}
]
},
{
"kind": "OMA",
"applicant": {
"kind": "OMS",
"uri": "http://mathhub.info/MitM/core/arithmetics?RealArithmetics?multiplication"
},
"arguments": [
{
"kind": "OMA",
"applicant": {
"kind": "OMS",
"uri": "http://mathhub.info/MitM/Foundation?Trigonometry?tan"
},
"arguments": [
{
"kind": "OMA",
"applicant": {
"kind": "OMS",
"uri": "http://gl.mathhub.info/MMT/LFX/Sigma?Symbols?Projl"
},
"arguments": [
{
"kind": "OMS",
"uri": "http://mathhub.info/FrameIT/frameworld?TriangleProblem_AngleAtB?angleB"
}
]
}
]
},
{
"kind": "OMA",
"applicant": {
"kind": "OMS",
"uri": "http://gl.mathhub.info/MMT/LFX/Sigma?Symbols?Projl"
},
"arguments": [
{
"kind": "OMS",
"uri": "http://mathhub.info/FrameIT/frameworld?OppositeLen/Problem?distanceBC"
}
]
}
]
}
]
},
{
"kind": "OMLIT<String>",
"type": "http://cds.omdoc.org/urtheories?Strings?string",
"value": "OppositeLen Scroll"
}
]
},
"ref": {
"kind": "OMS",
"uri": "http://mathhub.info/FrameIT/frameworld?OppositeLen/Solution?deducedLineCA"
},
"kind": "veq",
"label": "CA"
}
],
"name": "http://mathhub.info/FrameIT/frameworld?OppositeLen",
"path": null
}'> </data>
<!-- <script>
/* mouse and pointer event handling */
const rectangle = document.createElement("div");
rectangle.id = "rectangle";
console.log("appendChild to", document.body)
document.body.appendChild(rectangle);
function followCursor(event) {
const cursorX = event.clientX - 10;
const cursorY = event.clientY - 10;
//console.log(`MouseEvent X: ${cursorX}, Y: ${cursorY}, Event type: ${event.type}`, event);
rectangle.style.left = `${cursorX}px`;
rectangle.style.top = `${cursorY}px`;
}
document.addEventListener("mousemove", followCursor);
document.addEventListener("pointermove", followCursor);
document.addEventListener("mouseover", followCursor);
document.addEventListener("pointerover", followCursor);
document.addEventListener("mouseout", followCursor);
document.addEventListener("pointerout", followCursor);
</script> -->
</body>
</html>