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
|
var CurrentDiv;
function captureClick()
{
if(currentMode=='noPositionDefined')
{
CurrentDiv = document.createElement("Div");
currentMode='firstPositionCaptured';
startX=mouseX;
startY=mouseY;
}
else
{
currentMode='noPositionDefined';
}
}
function getMouseXY(aEvent) //deplacement de l'element draguer
{
var myEvent = aEvent ? aEvent : window.event; //recuperation de l'evenement selon le navigateur
//on recupere cible de l'evenemet
var target= myEvent.target ? myEvent.target : myEvent.srcElement;
if(myEvent.offsetX)
{
mouseX=myEvent.clientX+document.body.scrollLeft;
mouseY=myEvent.clientY+document.body.scrollTop;
}
else
{
mouseX=myEvent.pageX;
mouseY=myEvent.pageY;
}
}
function drawLine(x1,y1,x2,y2,color,espacementPointille,divId)
{
var myContainer = CurrentDiv;
myContainer.className = "Container";
if(espacementPointille<1) { espacementPointille=1; }
//on calcule la longueur du segment
var lg=Math.sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
var lt=lg/100;// on passe des mm au cm en divisant par 100
//transformation en string
var chaine=lt.toString();
chaine=chaine.substring(0,3);
//on determine maintenant le nombre de points necessaires
var nbPointCentraux=Math.ceil(lg/espacementPointille)-1;
//stepX, stepY (distance entre deux points de pointillés);
var stepX=(x2-x1)/(nbPointCentraux+0);
var stepY=(y2-y1)/(nbPointCentraux+0);
//on recreer un point apres l'autre
var strNewPoints='';
for(var i=1 ; i<nbPointCentraux ; i++)
{
strNewPoints+='<div style="font-size:1px; width:1px; height:1px; background-color:'+color+'; position:absolute; top:'+Math.round(y1+i*stepY)+'px; left:'+Math.round(x1+i*stepX)+'px; z-index:2;"> </div>';
}
//point de depart
strNewPoints+='<div style="font-size:1px; width:3px; height:3px; background-color:'+color+'; position:absolute; top:'+(y1-1)+'px; left:'+(x1-1)+'px; z-index:2; "> </div>';
//point d'arrive
strNewPoints+='<div style="font-size:1px; width:3px; height:3px; background-color:'+color+'; position:absolute; top:'+(y2-1)+'px; left:'+(x2-1)+'px; z-index:2;"> </div>';
strNewPoints+='<div style="font-size:20px; width:3px; height:3px; background-color:'+color+'; position:absolute; top:'+((y2+y1)/2)+'px; left:'+((x2+x1)/2)+'px; z-index:2;">'+chaine+'Cm</div>';
//on suprimme tous les points actuels et on mets les nouveaux div en place
//obj container des points
myContainer.innerHTML=strNewPoints;
document.getElementById(divId).appendChild(myContainer);
}
function tryDrawLine()
{
if(currentMode=='firstPositionCaptured')
{
drawLine(startX,startY,mouseX,mouseY,"red","2",'myDiv');
}
} |
Partager