2012-04-23 17 views
6

raphael.js'yi kullanarak basit bir ızgara çizme konusunda sorun yaşıyorum.raphael.js'yi kullanarak düz çizgiler çizmenin doğru yolu nedir?

ben paper.path() kullanıyorum ve her şey benim yol dizeleri ile iyi görünüyor:
enter image description here

ama nedense bu hale alır: Burada
enter image description here

ben kullanıyorum kodu Bu "ızgara"

// vertical lines 
    for(var x = (this._offset.x % cellSize); x < this.width; x += cellSize){ 
     var vpath = "M " + x + " 0 l " + x + " " + this.height + " z"; 
     var vline = paper.path(vpath); 
    } 
    // horizontal lines 
    for(var y = (this._offset.y % cellSize); y < this.height; y += cellSize){ 
     var hpath = "M 0 " + y + " l " + this.width + " " + y + " z"; 
     var hline = paper.path(hpath); 
    } 

işlemek üzere (bu durumda cellsize = 50 ve this._offset = {x: 0, y 0})

cevap

7

Sorun, l'un mutlak bir koordinat aldığını varsayıyor olmanızdır, ancak aslında göreceli olanı alır. Eğer yazarken:

M 50 0 l 50 600 

Düşünüyorsun o (50, 600) için (50,0) bir çizgi yazma anlamına gelir ama aslında (50, 0), hareket de başlangıç ​​demektir (50 , 600). Bu yüzden eğimli ızgara.

var vpath = "M " + x + " 0 l 0 " + this.height + " z"; 

ve:

var hpath = "M 0 " + y + " l " + this.width + " 0 z"; 
+0

Thx bro

Sadece (ile l sonra x ve y yerine) böyle vpaths yazmaya gerek , Çok basit bir şeyi özlediğime inanamıyorum. –

+12

kavramı doğru buldunuz, ancak semantikleri karıştırdınız: mutlak ve göreceli komutlar arasındaki fark, mutlak ('L') ya da göreceli (' l') için küçük harfleri büyük harflerle belirtmektir. –

+0

@EliranMalka ah, teşekkürler. – McGarnagle

İlgili konular