Alan Castelan Posted April 23, 2015 Report Share Posted April 23, 2015 Tenho uma classe javascript mas não estou entendendo ela, segue o codigo abaixo preciso entende-la para reescrever o codigo em delphi eu não estou entendendo o que acontece em Fit, e o que é a variavel block.fit onde ela é declarada ? /****************************************************************************** Best results occur when the input blocks are sorted by height, or even better when sorted by max(width,height). Inputs: ------ w: width of target rectangle h: height of target rectangle blocks: array of any objects that have .w and .h attributes Outputs: ------- marks each block that fits with a .fit attribute pointing to a node with .x and .y coordinates Example: ------- var blocks = [ { w: 100, h: 100 }, { w: 100, h: 100 }, { w: 80, h: 80 }, { w: 80, h: 80 }, etc etc ]; var packer = new Packer(500, 500); packer.fit(blocks); for(var n = 0 ; n < blocks.length ; n++) { var block = blocks[n]; if (block.fit) { Draw(block.fit.x, block.fit.y, block.w, block.h); } } ******************************************************************************/ Packer = function(w, h) { this.init(w, h); }; Packer.prototype = { init: function(w, h) { this.root = { x: 0, y: 0, w: w, h: h }; }, fit: function(blocks) { var n, node, block; for (n = 0; n < blocks.length; n++) { block = blocks[n]; if (node = this.findNode(this.root, block.w, block.h)){ block.fit = this.splitNode(node, block.w, block.h); } } }, findNode: function(root, w, h) { if (root.used) return this.findNode(root.right, w, h) || this.findNode(root.down, w, h); else if ((w <= root.w) && (h <= root.h)) return root; else return null; }, splitNode: function(node, w, h) { node.used = true; node.down = { x: node.x, y: node.y + h, w: node.w, h: node.h - h }; node.right = { x: node.x + w, y: node.y, w: node.w - w, h: h }; return node; } } Quote Link to comment Share on other sites More sharing options...
Question
Alan Castelan
Tenho uma classe javascript mas não estou entendendo ela, segue o codigo abaixo
preciso entende-la para reescrever o codigo em delphi
eu não estou entendendo o que acontece em Fit, e o que é a variavel block.fit onde ela é declarada ?
Link to comment
Share on other sites
0 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.