Programa recta que corta circunferencia
Publicado por Irea (1 intervención) el 26/04/2016 00:14:18
Hola me gustaría saber si saben como hacer para saber mediante un programa si una recta que hallamos corta a la circunferencia que nos dan.
Hasta ahora tengo este codigo pero no consigo completar el paso final
Espero que alguno me pueda ayudar para poder solucionarlo.
Un Saludo.
Hasta ahora tengo este codigo pero no consigo completar el paso final
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
<!DOCTYPE html>
<!--
To change this license header, choose License Headers in Project Properties.
To change this template file, choose Tools | Templates
and open the template in the editor.
-->
<html>
<head>
<title>TODO supply a title</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script type="text/javascript">
function PonerUnPuntoEn(a, b) {
var miTapiz = document.getElementById("miTapiz");
var ctx = miTapiz.getContext("2d");
ctx.beginPath();
ctx.arc(a, b, 4, 0, 2 * Math.PI);
ctx.fillStyle = "black";
ctx.fill();
ctx.stroke();
}
function CalcularYi1(a, b, r, xi) {
var xi_a = xi - a;
var xi_a_2 = xi_a * xi_a;
var r_2 = r * r;
var raiz_q = r_2 - xi_a_2;
raiz_q = Math.sqrt(raiz_q);
var valor = b + raiz_q;
return valor;
}
function CalcularYi2(a, b, r, xi) {
var xi_a = xi - a;
var xi_a_2 = xi_a * xi_a;
var r_2 = r * r;
var raiz_q = r_2 - xi_a_2;
raiz_q = Math.sqrt(raiz_q);
var valor = b - raiz_q;
return valor;
}
function dibujar(a, b, r) {
var x1 = a - r;
var x2 = a + r;
var xi = x1;
var yi1 = 0.0;
var yi2 = 0.0;
while (xi <= x2)
{
yi1 = CalcularYi1(a, b, r, xi);
yi2 = CalcularYi2(a, b, r, xi);
PonerUnPuntoEn(xi, yi1);
PonerUnPuntoEn(xi, yi2);
xi = xi + 0.1;
}
return xi;
}
function dibujarrecta( m, k) {
var xi = 1;
var x2 = 100;
while (xi <= x2) {
var yi = Calculary(m, k, xi);
PonerUnPuntoEn(xi, yi);
xi = xi + 0.1;
}
}
function Calculary(m, k, xi) {
var y = (m * xi) + k;
return y;
}
function Cortar(xi, m, k, a, b, r) {
xi =-k / m;
if((m * m) * (xi * xi) - ((2 * a) + (2 * m * (k - b)) * xi) + ((a * a) + ((k - b) * (k - b)) - (r * r)) == 0) {
alert("Esta dentro");
}
else {
alert("No esta dentro");
}
}
//(m²+1)x² – ((2*a)+(2*m*(kb)))x + (a²+(kb)²r²) = 0
//
</script>
</head>
<body onload="dibujar(80, 40, 35); dibujarrecta( 0, 40); Cortar(0, 0, 40, 80, 40, 35);" >
<canvas id="miTapiz" width="700" height="700" style="border:1px solid
#d3d3d3;">Your browser does not support the HTML5 canvas tag.</canvas>
</body>
</html>
Espero que alguno me pueda ayudar para poder solucionarlo.
Un Saludo.
Valora esta pregunta


0