मैथेमेटिका, 166 137 बाइट्स
l:={i,j};s=Sign;f[p_,q_,h_,w_]:=Grid@Table[(1-Max[s[p-l]s[q-l],0])Boole[Abs@Mean[s@Det@{p-l+#,p-q}&/@Tuples[.5{1,-1},2]]<.6],{i,h},{j,w}]
अधिक पठनीय संस्करण:
l := {i, j}; s = Sign;
f[p_, q_, h_, w_] :=
Grid@Table[(1 - Max[s[p - l] s[q - l], 0]) Boole[
Abs@Mean[
s@Det@{p - l + #, p - q} & /@
Tuples[.5 {1, -1}, 2]] < .6], {i, h}, {j, w}]
यह एक फ़ंक्शन को परिभाषित करता है जिसे कहा जाता है f। मैंने काफी उदारतापूर्वक इनपुट और आउटपुट विनिर्देशों की व्याख्या की। फ़ंक्शन fप्रारूप में इनपुट लेता है f[{x0, y0}, {x1, y1}, height, width], और ग्रिड 1-अनुक्रमित है, शीर्ष बाएं में शुरू होता है। आउटपुट जैसा दिखता है

1एस और पृष्ठभूमि के रूप में प्रदर्शित लाइन के साथ 0एस (यहां दिखाया गया है f[{2, 6}, {4, 2}, 5, 7])। की एक मेथेमेटिका मैट्रिक्स मोड़ का कार्य 1है और 0की एक स्ट्रिंग में रों #रों और .एस से पहले कई अन्य चुनौतियों में golfed किया गया है, तो मैं बस एक मानक पद्धति इस्तेमाल कर सकते हैं, लेकिन मुझे नहीं लगता कि कुछ भी दिलचस्प कहते है।
स्पष्टीकरण:
सामान्य विचार यह है कि यदि रेखा कुछ पिक्सेल से गुजरती है, तो पिक्सेल के चार कोनों में से कम से कम एक लाइन के ऊपर है, और कम से कम एक नीचे है। हम यह जांचते हैं कि क्या कोनों ( {x0,y0}कोने से) और ( {x0,y0}से {x1,y1}) के बीच के कोण की जांच करके एक कोने ऊपर या नीचे है : यदि यह कोण सकारात्मक है, तो कोने ऊपर है, और यदि कोण नकारात्मक है, तो कोने नीचे है।
यदि हमारे पास दो वैक्टर हैं {a1,b1}और {a2,b2}, हम यह देख सकते हैं कि मैट्रिक्स के निर्धारक के संकेत को खोजने से उनके बीच का कोण सकारात्मक या नकारात्मक है या नहीं {{a1,b1},{a2,b2}}। (ऐसा करने की मेरी पुरानी पद्धति जटिल संख्याओं के अंकगणित का उपयोग करती है, जो कि बहुत अच्छी तरह से… जटिल थी।)
कोड में काम करने का तरीका इस प्रकार है:
{p-l+#,p-q}&/@Tuples[.5{1,-1},2]से चार वैक्टर हो जाता है {x0,y0}और पिक्सेल के चारों कोनों (साथ l:={i,j}, पिक्सेल के निर्देशांक, पहले परिभाषित), और भी के बीच वेक्टर {x0,y0}और {x1,y1}।
s@Det@...लाइन और चार कोनों (उपयोग s=Sign) के बीच के कोणों के संकेत पाता है । ये -1, 0 या 1 के बराबर होंगे।
Abs@Mean[...]<.6जाँच करता है कि कुछ कोण सकारात्मक हैं और कुछ नकारात्मक। जिन चिह्नों में यह गुण होता है उन सभी के 4-tuples -0.5 और 0.5 (सम्मिलित) के बीच होते हैं, इसलिए हम इसकी तुलना में बाइट को बचाने के लिए 0.6 से तुलना करते <हैं <=।
अभी भी एक समस्या है: यह कोड मानता है कि लाइन दोनों दिशाओं में हमेशा के लिए फैली हुई है। इसलिए हमें लाइन को 1-Max[s[p-l]s[q-l],0]ट्रायल (त्रुटि और त्रुटि द्वारा पाया गया) से गुणा करना होगा , जो 1कि लाइन के समापन बिंदु द्वारा परिभाषित आयत के अंदर और उसके 0बाहर है।

बाकी कोड इन पिक्सल्स का एक ग्रिड बनाता है।
(एक बोनस के रूप में, यहां 181 बाइट्स के लिए एक पूरी तरह से अलग विधि के साथ पहले का प्रयास है :)
Quiet@Grid@Table[(1-Max[Sign[{i,j}-#3]Sign[{i,j}-#4],0])Boole[#3==#4=={i,j}||2Abs@Tr[Cross@@Thread@{{i,j},#3,#4}]/Norm[d=#3-#4]<2^.5Cos@Abs[Pi/4-Mod[ArcTan@@d,Pi/2]]],{i,#},{j,#2}]&