Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <canvas id="canvas" width="170" height="170" />
- <script>
- var canvas = document.getElementById("canvas");
- var ctx = canvas.getContext("2d");
- ctx.beginPath();
- ctx.moveTo(0,0);
- ctx.lineTo(0,150);
- ctx.lineTo(150,150);
- ctx.lineTo(0,0);
- ctx.stroke();
- // Criar array para guardar nossos vertíces
- // Versão simplificada para checar menor caminho, ponto a ponto
- var distancias =
- [
- [000, 000], // ponto de saida
- [[0,145],[145,145]], // caminho 1
- [145, 145] // caminho 2
- ];
- // Criar quadrados para simbolizar a divisão de vertíces
- ctx.fillRect(0,145,6,6)
- ctx.fillRect(145,145,6,6)
- ctx.fillRect(0,0,6,6)
- var vertices = distancias.length
- var min = [1.7976931348623157E+10308, -1]
- tmpmin = 0
- for(j = 1; j != vertices; j++) {
- if(distancias[j][0].length == undefined)
- tmpmin = Math.sqrt(((distancias[0][0] - distancias[j][0])*(distancias[0][0] - distancias[j][0])) + ((distancias[0][1] - distancias[j][1])*(distancias[0][1] - distancias[j][1])))
- else {
- tmpmin = Math.sqrt(((distancias[0][0] - distancias[j][0][0])*(distancias[0][0] - distancias[j][0][0])) + ((distancias[0][1] - distancias[j][0][1])*(distancias[0][1] - distancias[j][0][1])))
- for(i = 0; i != (distancias[j].length)-1; i++) {
- tmpmin += Math.sqrt(((distancias[j][i][0] - distancias[j][i+1][0])*(distancias[j][i][0] - distancias[j][i+1][0])) + ((distancias[j][i][1] - distancias[j][i+1][1])*(distancias[j][i][1] - distancias[j][i+1][1])))
- }
- }
- if(tmpmin < min[0]) {
- min[0] = tmpmin;
- min[1] = j;
- }
- }
- ctx.fillStyle = "red"
- for(x = distancias[min[1]][0]; x > -1; x--) {
- ctx.fillRect(x,distancias[min[1]][1]--,2,2);
- }
- </script>
- // Por rápido
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement