首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C語言鍵盤繪圖程式:電力系統一次接線圖手工繪製工具

     編輯:關於C語言

程式功能

在 DOS/TC 環境下,使用鍵盤方向鍵繪製電力系統一次接線圖,支援變壓器、開關等特殊符號,可存檔/讀檔編輯。

按鍵映射

鍵功能
V筆刷抬起(移動不畫)
W筆刷落下(移動畫線)
R橡皮擦模式
S存檔(pic.dat)
E讀檔繼續編輯
C畫圓(半徑 20 像素)
方向鍵8 向移動光標

核心技術點

  • getimage/putimage 保存/恢復光標圖樣(筆刷、橡皮擦、抬起狀態)。
  • bioskey(1) 非阻塞檢測按鍵,bioskey(0) 讀取鍵碼。
  • 特殊鍵掃描碼處理:k>>8 獲取擴展鍵碼(方向鍵 72/75/77/80/71/79/73/81)。
  • VGA 顯存直接讀寫存檔:0xA0000 起始,分 4 個平面(outportb(0x3CE,4) 選平面)。

主迴圈邏輯


for(;;) {
    while(!bioskey(1));           // 等待按鍵
    k = bioskey(0);
    putimage(x1,y1,fy,AND_PUT);   // 清除舊光標
    if ((k&0xFF)==0) k1=k>>8; else k2=k&0xFF;  // 分離擴展/普通鍵
    switch(k1) { case 72: y--; break; ... }   // 方向鍵移動
    switch(k2) { case 'w': putimage(wg); putpixel(); break; ... } // 功能鍵
    getimage(x1,y1,x2,y2,fy);     // 保存新位置背景
    putimage(x1,y1,vg,XOR_PUT);   // 顯示光標
}

現代化建議

  • 移植到 SDL2/SFML:事件迴圈替換 bioskey,紋理替換 getimage。
  • 增加圖層、撤銷/重做、矢量導出(DXF/SVG)。
  • 使用 ImGui 構建現代 GUI 介面替代純鍵盤操作。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved