0
我試圖在卡片上使用circle
命令設置多個令牌點。我想嘗試使用x-y座標的數組,但它只打印數組的第一個元素。下面是代碼的相關行:Squib:使用「circle」命令的陣列
circle x: [75, 150, 325, 500, 675, 750], y: [900, 1050, 1050, 1050, 1050, 900],
radius: 62.5, stroke_width: 2
我試圖在卡片上使用circle
命令設置多個令牌點。我想嘗試使用x-y座標的數組,但它只打印數組的第一個元素。下面是代碼的相關行:Squib:使用「circle」命令的陣列
circle x: [75, 150, 325, 500, 675, 750], y: [900, 1050, 1050, 1050, 1050, 900],
radius: 62.5, stroke_width: 2
給予數組啞炮它們映射到不同的牌,因爲Squib Thinks in Arrays。
因此,您的代碼會將圓圈放在其他卡片上。
要做到在同一張卡上的多個圈,做這樣的事情:
require 'squib'
Squib::Deck.new(cards: 6) do
background color: :white
xs = [75, 150, 325, 500, 675, 750]
ys = [900, 1050, 1050, 1050, 1050, 900]
(0..5).each do |i|
circle x: xs[i], y: ys[i], radius: 62.5, stroke_width: 2
end
save_png
end
或者你可以在你的問題的註釋使用的zip答案。
(全面披露:我是啞炮DEV)
看來,'Squib'的'circle'方法需要x'的'值和'y'(爲中心座標)是整數。你爲什麼希望他們成爲數組?你是否試圖繪製六個半徑相同的圓和'stroke_width'(以[75,900]','[150,1050]'爲中心等等)?如果是這樣,我認爲你需要這樣的東西:'a = [75,150,325,500,675,750]; b = [900,1050,1050,1050,1050,900]; a.zip(b).each {| x,y |圓x:x,y:y,半徑:62.5,stroke_width:2}'。 –