วิธีการวาดพิกเซลเดียวในอาคาร?


10

จนถึงตอนนี้ฉันใช้ตัวละครเพื่อวาดภาพรูปร่าง ฯลฯ ในเทอร์มินัล

เป็นไปได้ไหมที่จะวาดพิกเซลเดียว?

สมมติว่า:

foo 1 1 red

(1, 1)นี้จะวาดพิกเซลสีแดงที่พิกัด

มีแอปพลิเคชันที่มีอยู่ที่จะทำงานนี้หรือไม่?

ขณะนี้กำลังใช้ Ubuntu 14.04


3
คุณมีอาคารผู้โดยสารประเภทใด ธันวาคม GT40 ?
Anthon

@Anthon Gnome-Terminal (มาพร้อมกับ Ubuntu)
IonicăBizău

1
@ อันธพาลDEC GT40จะมีประโยชน์ แต่มันแพงเกินไป ... :-)
IonicăBizău

1
@terdon ฉันโหวตให้เปิดใหม่อีกครั้งเพราะนี่ไม่ใช่คำถามในการเขียนโปรแกรม (ฉันลบแท็กcและc ++ออกเพราะถ้าคุณจะเขียนรหัส C หรือ C ++ นั่นเป็นเรื่องนอกหัวข้อที่นี่) “ ไม่มีคุณสมบัติเช่นนี้คุณต้องตั้งโปรแกรม” จะเป็นคำตอบที่เหมาะสมที่นี่ - ยกเว้นว่ามันจะผิด: คำตอบที่ดีจะพูดถึง Tektronix และวาดผ่านหน้าต่างเทอร์มินัลเหมือน w3m
Gilles 'หยุดความชั่วร้าย'

1
@Gilles ยุติธรรมพอฉันเปิดใหม่อีกครั้ง ฉันปิดมันเพราะมันอยู่ในขั้นตอนการย้ายไปที่ SO และมันไม่ได้รับการต้อนรับที่นั่น
terdon

คำตอบ:


10

เทอร์มินัลเป็นการแสดงเซลล์อักขระและไม่สนับสนุนการวาดกราฟิกพิกเซล ไม่แม้แต่ตอนทำงานใน X11; แม้ว่าจะเป็นไปได้ที่จะดึงพิกเซลแต่ละพิกเซลเมื่อพูดกับเซิร์ฟเวอร์ X โดยตรงหากโปรแกรมของคุณกำลังพูดกับเทอร์มินัลก็สามารถขอให้เทอร์มินัลแสดงอักขระเท่านั้น

ในการแสดงกราฟิกแทนข้อความคุณจะต้องเขียนโปรแกรมที่โต้ตอบกับเซิร์ฟเวอร์ X โดยตรง นี้จะกระทำโดยทั่วไปผ่านห้องสมุดเครื่องมือ UI เช่นGTK , QtหรือwxWidgets


7
มีเทอร์มินัลทุกประเภทบางประเภทมีความสามารถด้านกราฟิก (เช่นโหมด Tektronix ของxtermหรือการฝังรูปภาพterminology) โปรดทราบว่าเทอร์มินัลยังอ้างถึงเทอร์มินัล X11 (ผู้สืบทอดของสิ่งต่างๆเช่นเทค
ทรอนิ

2
เย็น! ผู้ที่ชื่นชอบการวาดรูปกาน้ำชา 3 มิติใน xterm =) dim13.org/2009/02/teapot
gena2x

หากเทอร์มินัลสามารถ "วาด" ตัวอักษรได้อย่างเดียวบางทีพิกเซลก็ควรจะเป็นแบบชาร์ดังนั้นจึงสามารถวาดได้ ...

10

มีลักษณะที่เป็นห้องสมุด Drawille มันใช้ตัวอักษรอักษรเบรลล์ UTF ในการวาดพิกเซล


1
ในขณะที่สิ่งนี้อาจตอบคำถามในทางทฤษฎีมันก็ควรที่จะรวมส่วนสำคัญของคำตอบที่นี่และให้ลิงค์สำหรับการอ้างอิง
slm

1

คุณจะไม่สามารถวาดสีพิกเซลเดียวในหน้าจอเครื่องได้เว้นแต่ว่าคุณจะทำสิ่งที่Wyzardระบุไว้เขียนโปรแกรมด้วยตัวเองหรือหาเครื่องมือที่ทำไว้แล้วสำหรับงาน (ซึ่งอาจเป็นเฉพาะอาคาร) อย่างไรก็ตามคุณสามารถใช้พิกัดอักขระแต่ละตัวในเทอร์มินัลของคุณเพื่อวาดภาพ 2D โดยใช้อักขระ ASCII และ UTF-8 tputเครื่องมือนี้จะเรียกว่า เครื่องมือนี้ทำงานโดยจัดการตำแหน่งเคอร์เซอร์ตามพิกัดของเทอร์มินัลปัจจุบันของคุณ นี่คือรายการตัวอย่างของtputฟังก์ชันการทำงาน:

# tput Cursor Movement Capabilities:

tput cup Y X
    # Move cursor to screen location X,Y (top left is 0,0)

tput sc
    # Save the cursor position

tput rc
    # Restore the cursor position

tput lines
    # Output the number of lines of the terminal

tput cols
    # Output the number of columns of the terminal

tput cub N
    # Move N characters left

tput cuf N
    # Move N characters right

tput cuu N
    # up N lines

tput cud N
    # down N lines

1

นอกจากของชุดเครื่องมือเครื่องมือสำคัญ (GTK, Qt, WxWidgets) กล่าวถึงในคำตอบ Wyzard ของคุณยังสามารถพิจารณาสื่อที่มุ่งเน้นมากขึ้นเช่นห้องสมุดSFMLหรือlibSDL ถ้าคุณเพียงต้องการผลกราฟิกบางคน (เกือบไม่มีปฏิสัมพันธ์) คุณยังอาจพิจารณาCairoGraphics

ในบางกรณีคุณอาจใช้ผ่านท่อ (เช่นpopen ) หรือในบรรทัดคำสั่งสาธารณูปโภคเช่นคำสั่งgnuplotหรือGraphViz

คุณสามารถลองใช้ความสามารถด้านกราฟิกของเบราว์เซอร์ของคุณเช่นโดยการเขียนโค้ดเว็บแอปพลิเคชันเฉพาะ (โดยใช้ไลบรารีเซิร์ฟเวอร์ HTTP เช่นWtหรือlibonionด้วยเทคโนโลยีเว็บเช่น AJAX, SVG, HTML5, canvas, websockets และอื่น ๆ )

แต่เทอร์มินัลอีมูเลเตอร์ส่วนใหญ่มีความสามารถด้านกราฟิกไม่มากหรือน้อยเกินไป (ดังนั้นจึงไม่มีกราฟิกพิกเซลของแท้) ดังนั้นคุณต้องใช้โปรแกรมของคุณเพื่อโต้ตอบกับเซิร์ฟเวอร์การแสดงผล ( X11 , Wayland , ... )

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.