Rafael Tavares Juliani f269aace6b INÍCIO
2025-09-04 16:07:07 -03:00

390 lines
8.3 KiB
HTML
Executable File

<!DOCTYPE html>
<html lang="pt-br">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Figura 1.6: Tangente e cotangente de um ângulo</title>
<script type="text/javascript" charset="UTF-8"
src="../scripts/jsxgraph/jsxgraphcore.js"></script>
<link rel="stylesheet" type="text/css" href="../scripts/jsxgraph/jsxgraph.css" />
<link rel="preconnect" href="https://fonts.gstatic.com">
<script async src="https://www.googletagmanager.com/gtag/js?id=G-G6VT93GC1X"></script>
<script type="text/javascript" >
var head = document.getElementsByTagName('head')[0];
var js = document.createElement("script");
js.type = "text/javascript";
if ( window.location !== window.parent.location ) {
//carregado em um iframe
var url = window.top.location.href;
if (url){
var arr = url.split('/');
var dominio = arr[2];
if (dominio == "www.livro.online" || dominio == "livro.online"){
console.log('Iframe carregado no domínio de origem');
} else {
js.innerHTML = `
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-G6VT93GC1X');
`
}
} else {
js.innerHTML = `
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-G6VT93GC1X');
`
}
} else {
//não foi carregado em um iframe
js.innerHTML = `
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-G6VT93GC1X');
`
}
head.appendChild(js);
</script>
<style>
@media(max-width:768px){
.wide {display:none;}
.mobilefont {font-size:0.8em;}
}
@media(min-width:768px){
.tight {display:none;}
}
html {
overflow: hidden;
max-width: 2000px;
}
.jxgbox {
border-color: #85b8ec96;
}
.wrap600 {
break-inside: avoid-column;
overflow: hidden;
}
#jxgbox {
height:0;
width: 70%;
padding-bottom: 40%;
margin: 0 auto;
}
.trigonometria_legenda {
font-family: gfs_artemisia;
margin: 12px auto 20px auto;
max-width: 450px;
text-align: center;
}
span.centro {
display: block;
text-align: center;
margin: 10px 0px
}
.trigonometria_legenda p {
text-align: center;
font-size: 12px !important;
margin-top: 7px !important;
margin-bottom: 7px !important;
}
@font-face {
font-family: 'gfs_artemisia';
src: url('../gfs_artemisia/GFSArtemisia.otf') format('opentype'),
url('../gfs_artemisia/GFSArtemisia.ttf') format('trutype');
}
body{
margin: 0;
padding: 0;
}
h1 {
font-size: 28pt;
text-align: left;
margin-bottom: 43px;
}
h2 {
font-size: 14pt;
text-align: left;
margin-top: 30px;
}
</style>
</head>
<body>
<div class="wrap600 ">
<div id="jxgbox" class="jxgbox" ></div>
</div>
<div class="trigonometria_legenda">
<span><strong>Figura 1.6</strong>: Tangente e cotangente de um ângulo.</span>
<p>*Arraste o ponto A.</p>
</div>
<script type="text/javascript">
JXG.Options.renderer = 'canvas';
JXG.Options.text.cssDefaultStyle = 'fontFamily:arial';
JXG.Options.text.display = 'internal';
var board = JXG.JSXGraph.initBoard('jxgbox', {showCopyright: false, boundingbox: [-0.5, 2, 1.5, -0.5], axis: true, keepAspectRatio: true});
var o = board.create('point',[0,0], {name:"O", size:"1", fixed: true, label:{autoPosition: true, offset:[-15, -15]}});
var a = board.create('point',[0.8, Math.sqrt(1 - Math.pow(0.8,2))], {name:"A", size:"1", showInfobox: false});
var v = board.create('point',[1,0], {name:"V", size:"1", fixed: true, label:{autoPosition: true, offset:[10, -15]}});
c1 = board.create('circle', [o, a]);
var w = board.create('point', [0,1], {name: "W", fixed: true, showInfobox: false});
var xAxis = board.create('line', [o,w], {visible: false});
var yAxis = board.create('line', [o,v], {visible: false})
var t = board.create('perpendicular', [xAxis, w], {name: "t"});
var r = board.create('perpendicular', [yAxis, v], {name: "r"});
var alpha = board.create('angle', [v, o, a], {fillColor:'orange', radius: 0.1, label:{ visible: false, fontSize:"20px", autoPosition: false, offset:[-5, -17]}});
var alpha_value = board.create('text', [0.1, 0.08, function() {
return "u = "+JXG.Math.Geometry.trueAngle(v, o, a).toFixed(0) + '°';
}], {anchor: alpha, fontSize:"17px", cssDefaultStyle:"fontFamily:gfs_artemisia; fontSize:12px;"});
var m = board.create('point', [1,Math.tan(Math.PI*JXG.Math.Geometry.trueAngle(v, o, a).toFixed(0)/180)], {name: "M", showInfobox: false});
var n = board.create('point', [1/Math.tan(Math.PI*JXG.Math.Geometry.trueAngle(v, o, a).toFixed(0)/180),1], {name: "N", showInfobox: false});
var prolong = board.create('line',[o,m],
{straightFirst:false, straightLast:true, strokeWidth:1});
var rTxt = board.create('text', [1.05, 1.45, "r"], {fontSize:"17px", cssDefaultStyle:"fontFamily:gfs_artemisia; fontSize:12px;"});
var tTxt = board.create('text', [1.4, 0.95, "t"], {fontSize:"17px", cssDefaultStyle:"fontFamily:gfs_artemisia; fontSize:12px;"});
board.on('move', function(){
var an = JXG.Math.Geometry.trueAngle(v, o, a).toFixed(0);
var pot = Math.pow(a.X(),2);
if (pot > 1){
pot = 1;
}
var xis = Math.sqrt(pot);
if (an > 90 && an < 270) {
xis = -xis;
}
if (an >= 0 && an <= 90){
a.moveTo([xis, Math.sqrt(1 - pot)]);
m.moveTo([1,Math.tan(Math.PI*an/180)]);
n.moveTo([1/Math.tan(Math.PI*an/180),1])
n.setAttribute({visible:true});
alpha_value.setAttribute({visible:true});
alpha.setAttribute({visible:true});
m.setAttribute({visible:true});
prolong.setAttribute({visible:true});
c1.setAttribute({visible:true});
o.setAttribute({visible:true});
v.setAttribute({visible:true});
w.setAttribute({visible:true});
r.setAttribute({visible:true});
t.setAttribute({visible:true});
}
else {
n.setAttribute({visible:false});
alpha_value.setAttribute({visible:false});
alpha.setAttribute({visible:false});
m.setAttribute({visible:false});
prolong.setAttribute({visible:false});
c1.setAttribute({visible:false});
o.setAttribute({visible:false});
v.setAttribute({visible:false});
w.setAttribute({visible:false});
r.setAttribute({visible:false});
t.setAttribute({visible:false});
}
});
//Comando para deixar responsivo (OBS.: Só isso não basta, precisa o css também estar configurado)
var resize = function () {
board.resizeContainer(board.containerObj.clientWidth, board.containerObj.clientHeight, true);
board.fullUpdate();
};
window.onresize = resize;
</script>
</body>
</html>