Archive for février, 2012


Profitez de 30 % de réduction sur toutes les versions de Windows 7.
Valable du 21 Février au 02 Mars 2012.

Pour en profiter cliquez sur le lien ci dessous :


Windows30



Enveloppe d’une forme convexe en Action Script

Aujourd’hui voici un petit tutoriel sur la création d’une enveloppe d’une forme convexe.

notre forme sera un polygone constitué d’une nombre indéfinis de points.Le code présenté est inspiré de l’algorithme du parcours de Graham

on crée un tableau enveloppe qui stockera les points à relier. Le tableau d’objet points à au départ 2 propriétés : X et Y

var enveloppe:Array = [];

//Recherche du point le plus bas
var bas:Object = points.sortOn("y",Array.NUMERIC)[points.length-1];
points.pop();

Puis on affecte une propriété angle définies par rapport au point le plus bas

//Tri du reste du nuage en fonction des angles par rapport au point le plus bas
sens_trigo( bas,points ) ;
points.sortOn("angle",Array.NUMERIC);
enveloppe.push(bas);
points.push(bas);

enfin , nous pouvons créer l’enveloppe :

while(points.length > 0)
{
	//On retire le premier point du nuage et on le place dans l'enveloppe
	enveloppe.push(points.shift() ) ;
}

var spr:Shape = new Shape();
spr.graphics.lineStyle(group.@weight,group.@color);
spr.graphics.beginFill(group.@color);

for (var incS:int = 0; incS < enveloppe.length ; incS++)
{
	if(incS == 0)
	{
		spr.graphics.moveTo(enveloppe[incS].x,enveloppe[incS].y+20);
	}
	else
	{
		var deltaX:Number = enveloppe[incS].x-enveloppe[incS-1].x;
		var deltaY:Number = enveloppe[incS].y-enveloppe[incS-1].y;
		if(deltaX > 0)
			spr.graphics.curveTo(enveloppe[incS].x-deltaX/2,enveloppe[incS].y+Math.abs(deltaY),enveloppe[incS].x+20,enveloppe[incS].y);
		else
			spr.graphics.curveTo(enveloppe[incS].x-deltaX/2,enveloppe[incS].y-Math.abs(deltaY),enveloppe[incS].x-20,enveloppe[incS].y);
	}
}
spr.graphics.endFill();

Méthode sens_trigo :

private function sens_trigo(bas:Object,points:Array):void
{
     for each(var p:Object in points)
     {
	var angleRadian:Number = Math.atan2(bas.x - p.x, bas.y - p.y);
	var angleDegree:Number = angleRadian * (180 / Math.PI);
	p.angle = angleDegree;
      }
}

Pour rappel le pseudo code du parcours de Graham est celui ci :

Trouver le pivot P;
Trier les points par angle (les points d'angle égal seront triés par rapport à leur abscisse);

# Points[1] est le pivot, Points[longueur] aussi (fin du circuit)
Pile.empiler(Points[1]);
Pile.empiler(Points[2]);
POUR i = 3 A Points.longueur
        TANT QUE (Pile.hauteur >= 2) ET (Produit_vectoriel(Pile.second, Pile.haut, Points[i]) <= 0)
                Pile.dépiler;
        FIN TANT QUE
        Pile.empiler(Points[i]);
FIN POUR

FONCTION Produit_vectoriel(p1, p2, p3)
        RENVOYER(p2.x - p1.x)*(p3.y - p1.y) - (p3.x - p1.x)*(p2.y - p1.y);
FIN FONCTION


La version commerciale du SDK Kinect prévue pour début 2012

Une news comme ça en passant .Microsoft a annoncé une version payante du SDK Kinect prévue pour sortir début 2012.

Ce sdk dans sa version beta est de plus en plus utilisée par les entreprises de plus plusieurs domaines tels que l’industrie ou la santé , 200 d’entres elles ont déjà testées ce sdk dans une version pilote visant à expérimenter les possibilités commerciales de cet outil.

Pour rappel, le SDK offre la détection du squelette pour détecter l’image d’une ou deux personnes, des capacités audio dont un micro quatre éléments avec annulation du bruit ambiant et de l’écho, l’identification de la source sonore, les API de reconnaissance vocale de Windows, une caméra en trois dimensions pour mesurer la distance entre un objet et le capteur Kinect.