Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - patilanz

#31
Si

Un saludo
#32
No veo nada raro en tu sueño  ;D Yo he soñado el código que había hecho el día anterior con algo agregado pero a mi no me comía lo huevos jajaja

Un saludo
#33
Hacking / Re: LogMein Hamachi
5 Enero 2016, 16:50 PM
Creo que crea una tarjeta virtual y oculta tu ip publica, solo puedes ver la ip que te asigna hamachi aunque no estoy seguro.
#34
En IE8 cuando intenta llamar al handler con call devuelve este error: El objeto no acepta esta acción
#35
Hola quiero sobrescribir addEventListener en todos los objetos de modo que no tenga que llamar a AttachEvent por separado:
Código (javascript) [Seleccionar]
addEventListener = function(){
   if(this.attachEvent){return this.attachEvent('on' + arguments[0]);}
   return Object.getPrototypeOf(this).addEventListener.apply(this,arguments);
}


Esto seguramente no funcione y si funciona solo reemplazara el addEventListener de window.

Alguna idea?

Un saludo

@Edit: Ya se que puedo crear una función aparte y pasar como primer parámetro el objeto pero no es lo que quiero hacer.
#36
Cita de: RevolucionVegana en 19 Diciembre 2015, 22:39 PM
Sería de ser muy lammer si le haces algo a alguien que se supone quiere ser tu compañero

Justamente por esto, si quieren envíen MP y hago el grupo de skype o si no, lo dejamos ya y no hacemos nada  ;D
#37
YO LO QUIERO
#38
Lo de los libros creo que esta claro. El grupo es para solucionar dudas y para plantear retos u otras cosillas parecidas pero no para enseñar desde cero.

No veo ningún problema en dar el skype, yo tenia un grupo de whatsapp y nadie hizo nada malo a nadie
#39
Hola no se porque pero no puedo captar cuando se pulsan las teclas: flecha arriba, flecha izquierda y space a la vez.
Por ejemplo este codigo no lo detecta:
Código (javascript) [Seleccionar]
document.addEventListener('keydown',function(e){
e = e || window.event;
keys[e.which || e.keyCode] = true;
if(keys[gLib.keys['up']] && keys[gLib.keys['left']])console.log(keys[gLib.keys['space']]);
});


Si es flecha arriba y flecha derecha o cualquier otra combinación no hay problema  :-\
Lo comprobé en Notepad y tampoco lo detecta...
Puede ser una limitación de mi teclado?

Un saludo
#40
Hola supongamos que tengo un objeto formado por vectores:
Código (javascript) [Seleccionar]
[
{x:0,y:0},
{x:30,y:0},
{x:0,y:30}
]


Al unirlos se crea un triangulo que quiero girar. Quiero obtener los puntos resultantes de algo como esto(cuadrado en este caso):
Código (javascript) [Seleccionar]
var c = canvas.getContext('2d');
var cuadrado = [{x:0,y:0},{x:100,y:0},{x:100,y:100},{x:0,y:100}]
var width = 100;
var height = 100;
c.save();
c.setTransform(1,0,0,1,0,0);
c.translate(x+.5*width,y+.5*height); // Nos movemos en la mitad del cuadrado (u otra figura )
c.rotate(Math.PI/180*angulo);
dibujar(cuadrado); // Funcion que utiliza c.moveTo y c.lineTo para dibujar
c.restore();

Quiero rotar los puntos del "cuadrado"  para no tener que utilizar c.rotate y poder comprobar colisiones con SAT


Intente mediante esta función:
Código (javascript) [Seleccionar]
self.lineRotate = function(p,o,a){
var diffX, diffY, dist, ca, na, x, y;

diffX = p.x - o.x;
diffY = p.y - o.y;
dist = this.pointsDistance(o,p);
//dist = Math.sqrt(diffY*diffY + diffX*diffX);

ca = Math.atan2(diffY,diffX) * 180 / Math.PI;
na = ((ca + a) % 360) * Math.PI/180;

x = (o.x + dist * Math.cos(na) + 0.5)|0;
y = (o.y + dist * Math.sin(na) + 0.5)|0;

return {x:x,y:y};
}
self.lineMiddle = function(a,b){
//return {x: a.x + (b.x - a.x)/2, y: a.y + (b.y - a.y)/2};
return {x: (a.x + b.x)/2, y: (a.y + b.y)/2};
}

Y luego la funcion de girar:

Código (javascript) [Seleccionar]
var newPoints = [];
if(points.length < 2)return false;
for(var i=0;i<points.length - 1;i++){
newPoints.push(self.lineRotate(points[i],self.lineMiddle(points[i],points[i+1]),degrees));
}
newPoints.push(self.lineRotate(points[points.length - 2],self.lineMiddle(points[points.length - 2], points[points.length - 1]), degrees));
this.p.setPoints(newPoints);


El triangulo se deforma.
Luego también probé con esta función:
Código (javascript) [Seleccionar]
self.pointRotate = function(p,a,o){ // p = punto | a = angulo | o = origen
o = o || {x:0,y:0};
a = a * Math.PI/180;
p.x -= o.x;
p.y -= o.y;


return new SAT.Vector(
Math.cos(a) * p.x - Math.sin(a) * p.y + o.x,
Math.sin(a) * p.x + Math.cos(a) * p.y + o.y
);
}

Y la función de girar:
Código (javascript) [Seleccionar]
var points = this.p.calcPoints;
var average = new SAT.Vector(0,0);
for(var i =0;i<this.p.calcPoints.length;i++){
average.x += this.p.calcPoints[i].x;
average.y += this.p.calcPoints[i].y;
}
average.x /= this.p.calcPoints.length;
average.y /= this.p.calcPoints.length;
var newPoints = [];
if(points.length < 2)return false;
for(var i=0;i<points.length;i++){
newPoints.push(self.pointRotate(points[i].clone(), degrees, average));
}
this.p.setPoints(newPoints);


También se deforma.

No encuentro porque falla. Ayuden pls


Un saludo

@Edit: Solucionado con esta función y un cambio en la función de dibujar que no es importante:

Código (javascript) [Seleccionar]
rotate: function(degrees){
theta = Math.PI/180 * degrees;
var points = this.p.calcPoints;

var average = new v(0,0);
points.forEach(function(p){
average.x += p.x;
average.y += p.y;
});
average.x /= points.length;
average.y /= points.length;

var newPoints = [];
points.forEach(function(p){
newPoints.push(new v(
((p.x - average.x) * Math.cos(theta) + (p.y - average.y) * Math.sin(theta)) + average.x,
(-(p.x - average.x) * Math.sin(theta) + (p.y - average.y) * Math.cos(theta)) + average.y
));
});
this.p.setPoints(newPoints);
}