मैं सेलुलर automaton (जीवन के कोनवे के खेल) पर्ल और टी का उपयोग कर लिखा है, सिर्फ मनोरंजन और अभ्यास के लिए। यह कंसोल आउटपुट के साथ ठीक काम करता है। जब मैं टी का उपयोग करें, पहले संस्करण में मैं सिर्फ हटा सकते हैं और नई कोशिकाओं (आयतों) जोड़ने के लिए, और के बारे में 100 कदम के बाद मेरे कार्यक्रम (लगभग 10 बार) नीचे धीमी कर दी है। तब मैं ग्राफिक्स हिस्सा दुबारा लिखा: शुरू में उनके रंग बदलना बजाय जोड़ने/उन्हें हटाने 2500 कोशिकाओं (50x50) और फिर सभी को बनाया है। लेकिन 600-700 चरणों के बाद मेरे पुनर्वित्तित automaton भी धीमा शुरू होता है।रुपये कैनवास इतना धीमा क्यों है?
यह एक सुविधा/टी के बग है या मैं कुछ गलत करते हैं?
टैग द्वारा बदलने का रंग:
$canvas->itemconfigure("cell"."$x $y", -fill=>'blue');
बनाना ग्रिड:
for($y = 0; $y < 50; $y++)
{
for($x = 0; $x < 50; $x++)
{
$canvas->createRectangle($x * 10, $y * 10, ($x + 1) * 10, ($y + 1) * 10, -fill=>'white', -tags=>["cell"."$x $y"]);
}
}
आरंभ और रोक पाश:
sub start
{
$repeat = $MainWindow->repeat($speed, sub{&maketurn;});
# Function "maketurn" is not important, it is a simple counting of "alive" cells
# and changing color by tag
}
sub stop
{
if(defined($repeat))
{
$repeat->cancel();
}
}
बनाएं और आयतों ड्राइंग के बजाय छवि के साथ काम कर रहा? ठीक है, मैं इस – spyder
कोशिश करता हूँ @spyder कैनवास एक संरचित hypergraphics विजेट है। यह बढ़िया है, सिवाय इसके कि यह व्यक्तिगत पिक्सेल पर बेकार है (क्योंकि प्रत्येक ग्राफिक्स तत्व में एक जटिल ऑब्जेक्ट मॉडल है)। पिक्सेल काम के लिए, एक फोटो छवि कहीं अधिक कुशल है। –