स्क्रीन पर 2 डी सरणी पिक्सल लिखने के लिए आप क्या सलाह देते हैं?स्कैला - स्क्रीन पर 2 डी सरणी लिखने के लिए सबसे आसान 2 डी ग्राफिक्स?
मेरा पहला विचार कुछ एसडब्ल्यूटी बाध्यकारी है, लेकिन क्या कोई अन्य है? प्रसंस्करण शायद?
स्क्रीन पर 2 डी सरणी पिक्सल लिखने के लिए आप क्या सलाह देते हैं?स्कैला - स्क्रीन पर 2 डी सरणी लिखने के लिए सबसे आसान 2 डी ग्राफिक्स?
मेरा पहला विचार कुछ एसडब्ल्यूटी बाध्यकारी है, लेकिन क्या कोई अन्य है? प्रसंस्करण शायद?
यह स्विंग में भी मुश्किल नहीं है - आप कट और पेस्ट नीचे कर सकते हैं। यदि आप रंग या किसी भी आकार की खिड़की पर आकर्षित करने की क्षमता नहीं चाहते हैं, या यदि यह हमेशा एक ही आकार है, तो आप इसे थोड़ा सा सरल बना सकते हैं।
:import swing.{Panel, MainFrame, SimpleSwingApplication}
import java.awt.{Color, Graphics2D, Dimension}
object Draw extends SimpleSwingApplication {
val data = // put data here
def top = new MainFrame {
contents = new DataPanel(data) {
preferredSize = new Dimension(300, 300)
}
}
}
आपका डाटा की तरह
val data = Array.ofDim[Color](25, 25)
// plot some points
data(0)(0) = Color.BLACK
data(4)(4) = Color.RED
data(0)(4) = Color.GREEN
data(4)(0) = Color.BLUE
// draw a circle
import math._
{
for {
t <- Range.Double(0, 2 * Pi, Pi/60)
x = 12.5 + 10 * cos(t)
y = 12.5 + 10 * sin(t)
c = new Color(0.5f, 0f, (t/2/Pi).toFloat)
} data(x.toInt)(y.toInt) = c
}
कुछ जो तुम देना होगा हो सकता है:
class DataPanel(data: Array[Array[Color]]) extends Panel {
override def paintComponent(g: Graphics2D) {
val dx = g.getClipBounds.width.toFloat/data.length
val dy = g.getClipBounds.height.toFloat/data.map(_.length).max
for {
x <- 0 until data.length
y <- 0 until data(x).length
x1 = (x * dx).toInt
y1 = (y * dy).toInt
x2 = ((x + 1) * dx).toInt
y2 = ((y + 1) * dy).toInt
} {
data(x)(y) match {
case c: Color => g.setColor(c)
case _ => g.setColor(Color.WHITE)
}
g.fillRect(x1, y1, x2 - x1, y2 - y1)
}
}
}
फिर एक स्विंग एप्लिकेशन हो:
एक पैनल वर्ग को परिभाषित करें
आप आसानी से रंगों को मैप करने के लिए अपने मौजूदा सरणी पर map
फ़ंक्शन का उपयोग कर सकते हैं।
धन्यवाद। कोड walkthough भी सराहना करते हैं। –
ध्यान दें कि आपको कुछ भी महत्वपूर्ण प्रदर्शन के लिए समझने से बचाना चाहिए। वे अनुकूलित नहीं हो जाते हैं। – hishadow
मैं @ n8han के एसपीडीई का सुझाव देने जा रहा हूं, जो प्रोसेसिंग का एक स्कैला "बंदरगाह" है।
http://technically.us/spde/About
यहाँ उदाहरण के एक टन कर रहे हैं:
सरणी में पिक्सेल एन्कोडेड कैसे हैं? क्या आपको एक स्विंग घटक की आवश्यकता है जिसे आप किसी मौजूदा जीयूआई में जोड़ सकते हैं या बस स्क्रीन पर एक छवि प्रदर्शित कर सकते हैं? – paradigmatic