2012-05-04 197 views
0

我想要實現在JavaScript函數,將做到以下幾點:旋轉矩形需要

允許用戶指定(3-30)輸入矩形的數目。 生成請求數量的輸入矩形(具有隨機的寬度和高度)並將它們寫入文件(可讀的文件)。 從上述步驟中生成的文件中讀取隨機生成的輸入矩形。 以圖形方式顯示輸入矩形,正確佈置,如示例中所示。 計算輸出矩形。 以圖形方式顯示輸出矩形,如上例所示正確佈局。注意:輸入和輸出矩形必須同時顯示。 將輸出矩形座標寫入輸出文件(可讀的)。

輸入: 在同一基線上從左至右彼此相鄰放置的一組隨機矩形。 輸出: 輸出表示與輸入矩形所描述的相同面積和結果形狀的垂直堆疊矩形的最小數量。

下面是我站在這裏的時刻,我找到了這段代碼的一部分,但現在我被困住了,無法讓它與所有這些實現一起工作,我如何將輸入值從3增加到30 ?結果如何同時顯示輸入和輸出?

任何提示是真正的讚賞。

<script> 
function doit() { 
drawRectangle(100, 150, 200, 100); 
myrect = document.getElementById("newdiv"); 
myrect.innerHTML= myrect.innerHTML + "<h1>howto</h1>"; 
} 

function drawRectangle(left, top, width, height) { 
if (document.createElement) { 
    newdiv=document.createElement("div"); 
    newdiv.style.position="absolute"; 
    newdiv.style.left = left+"px"; 
    newdiv.style.top = top+"px"; 
    newdiv.style.width = width+"px"; 
    newdiv.style.height = height+"px"; 
    newdiv.style.backgroundColor = 'red'; 
    newdiv.style.visibility = 'visible'; 
    newdiv.id = 'newdiv'; 
    newdiv.innerHTML = "real"; 
    document.body.appendChild(newdiv); 
    } 
} 
</script> 
+0

喜歡,你想輸出矩形(rects的座標)到一個文件 - 客戶端上的文件? –

回答

0

我創建了一個JSFiddle爲你使用現有的代碼顯示一個基本出發點和供你在,如果你想玩耍。我添加了一個<input>元素以允許您指定要繪製的矩形的數量。但是,我將它留給你來改變你的doit方法來實際繪製更多的矩形。

至於幾何問題,確定較大的直腸填充所有較小的直腸的空間,請參閱this SO question

您可能還想考慮使用canvas繪製矩形而不是div元素,因爲繪製大量元素並分離輸出和輸入矩形會更容易。一個很好的基本教程可以是發現here

+0

嗨勃蘭特,非常感謝所有有用的信息,但是在這個階段,我仍然無法弄清楚如何將div變成畫布,使得畫出多個矩形,也無法得到它如何計算座標要素。我在之前的消息中附加了缺少的樣本圖片。 我已經做了一些改變,你發送給我的小提琴無濟於事: [鏈接]:http://jsfiddle.net/brantolsen/aWH2D/2/「JSFiddle」 – aurinko

+0

我相信我已經附加了圖像,雖然我只是注意到我有一個錯誤,因爲我是一個新用戶,不允許發佈圖像。 – aurinko

+0

@TancrediLeone我更新了我的JSFiddle,以顯示如何從div獲取'x'和'y'值以及如何在畫布上繪製。請記得在更改小提琴時單擊更新按鈕,否則我看不到您的更改。當你點擊按鈕時,小提琴末尾的數字將增加1。 –