2015-09-18 3 views
1

В настоящее время у меня есть это:Как сделать параллельные линии

 // mDY = current Y-axis position 
     // first point (X1, Y1), second point (X2,Y2); 
     if (Y1 > mDY) 
      mDY1 = Y1 - Math.abs(Y1 - mDY); 
     else if (Y1 < mDY) 
      mDY1 = Y1 + Math.abs(Y1 - mDY); 

     if (Y2 > mDY) 
      mDY2 = Y2 - Math.abs(Y2 - mDY); 
     else if (Y2 < mDY) 
      mDY2 = Y2 + Math.abs(Y2 - mDY); 


       ctx.beginPath(); 
       ctx.moveTo(X1,Y1); 
       ctx.lineTo(X2,Y2);    
       ctx.stroke(); 

       ctx.beginPath(); 
       ctx.moveTo(X1, mDY1); 
       ctx.lineTo(X2, mDY2); 
       ctx.stroke(); 

То, что я хочу, чтобы иметь этот результат:

В основном они всегда параллельны, как параллельный канал.

+0

Я бы удалил 'else mDYn = 0' –

+0

@ JanTuroň уже обновил мой вопрос – Believer

+0

Кажется, что вы пропустили какой-то важный код для публикации здесь. Как насчет 'mDY1 = Y1 + 10; mDY2 = Y2 + 10' вместо блоков 'if-else if'? –

ответ

0

По определению абсолютного значения, вы можете сократить этот фрагмент

if (Y1 > mDY) 
    mDY1 = Y1 - Math.abs(Y1 - mDY); 
else if (Y1 < mDY) 
    mDY1 = Y1 + Math.abs(Y1 - mDY); 

к этому

mDY1 = Y1 - (Y1 - mDY) 

которая

mDY1 = mDY 
// and mDY2 = mDY, which is horizontal line 

Что вы хотите

mDY1 = Y1 - mDY; 
mDY2 = Y2 - mDY; 
Смежные вопросы