Từ 1 tới 8 trên tổng số 8 kết quả

Đề tài: Giải thuật set trên từng pixel điểm ảnh

  1. #1
    Ngày gia nhập
    12 2007
    Nơi ở
    hồ chí minh
    Bài viết
    13

    Mặc định Giải thuật set trên từng pixel điểm ảnh

    Mình đang muốn coding chương trình vẽ ký tự trong C với yêu cầu set trên từng pixel điểm ảnh của màn hình ...ai có biết hướng đi ra sao không chỉ dùm mình với..cảm ơn nhiều .
    Tất cả những gì không thể mua được bằng tiền thì đều có thể mua được bằng rất nhiều tiền

  2. #2
    Ngày gia nhập
    06 2007
    Nơi ở
    một nơi xa xăm...
    Bài viết
    127

    Hix chưa nghĩ tới cái ni bao giờ.Mà mình nghĩ sao bạn không load ảnh từ ảnh bitmap nhỉ có lẽ như vậy là dễ hơn việc vẽ từng ký tự mà lại fải setpixel từng điểm

  3. #3
    Ngày gia nhập
    12 2007
    Nơi ở
    hồ chí minh
    Bài viết
    13

    trời ơi nếu vậy thì dễ hơn rồi , nhưng ông thày giáo mình bắt phải làm như vậy đó , phải set từng pixel điểm ảnh , mà lại là vẽ ký tự mới khó chứ ...ai ơi giúp đệ với , không biết hướng giải quyết như nào , chỉ giúp ý tưởng bài này là đệ có thể làm được mà....giúp đệ đi mấy huynh , đệ cần làm bài này nghĩ mãi hông ra
    Tất cả những gì không thể mua được bằng tiền thì đều có thể mua được bằng rất nhiều tiền

  4. #4
    Ngày gia nhập
    11 2007
    Bài viết
    4

    Cái này như là việc bạn làm font chữ ấy. Mỗi ký tự của bạn được đặc trưng bởi 1 mảng 2 chiều, mỗi phần tử của mảng chỉ nhận giá trị 0-1. Khi vẽ ký tự ra màn hình, bạn hãy coi màn hình với tọa độ các pixel như cái mảng 2 chiều kia. Vị chí nào trong ma trận có giá trị 1 thì pixel tương ứng trên màn hình được vẽ ra. Ví dụ về mảng 2 chiều cho chữ A:
    Code:
    0 0 0 0 0 0 1 0 0 0 0 0 0
    0 0 0 0 0 1 1 1 0 0 0 0 0
    0 0 0 0 1 0 0 1 1 0 0 0 0
    0 0 0 1 1 0 0 0 1 1 0 0 0
    0 0 1 1 0 0 0 0 0 1 1 0 0
    0 1 1 0 0 0 0 0 0 0 1 1 0
    1 1 1 1 1 1 1 1 1 1 1 1 1
    1 1 1 1 1 1 1 1 1 1 1 1 1
    1 1 0 0 0 0 0 0 0 0 0 1 1
    1 1 0 0 0 0 0 0 0 0 0 1 1
    1 1 0 0 0 0 0 0 0 0 0 1 1
    1 1 0 0 0 0 0 0 0 0 0 1 1
    Sau khi vẽ ra sẽ gần như:
    Code:
                     1            
                  1 1 1 
               1 1    1 1 
            1 1         1 1
         1 1               1 1
      1 1                     1 1
    1 1 1 1 1 1 1 1 1 1 1 1 1
    1 1 1 1 1 1 1 1 1 1 1 1 1
    1 1                          1 1
    1 1                          1 1
    1 1                          1 1
    1 1                          1 1
    Vẽ không đẹp lắm, hi vọng bạn vẽ đẹp hơn.

    Ý tưởng là như vậy. Khi thực hiện, vì các mảng 2 chiều kia chỉ có giá trị 0-1, vì vậy thay vì phải phải lưu cả mảng 2 chiều, bạn thấy mỗi nó như số nhị phân==> mỗi hàng hay cột trong mảng 2 chiều kia sẽ mã hóa như là 1 số nhị phân. chuyển số nhị phân này sang dạng thập phân. Vậy là từ mảng 2 chiều bạn rút gọn còn mảng 1 chiều của các số thập phân.
    Ví dụ:
    0 0 0 0 0 0 1 0 0 0 0 0 0 ==>64
    0 0 0 0 0 1 1 1 0 0 0 0 0 ==>224
    0 0 0 0 1 0 0 1 1 0 0 0 0 ==>304
    0 0 0 1 1 0 0 0 1 1 0 0 0 ==>792
    0 0 1 1 0 0 0 0 0 1 1 0 0 ==>1548
    0 1 1 0 0 0 0 0 0 0 1 1 0 ==>3078
    1 1 1 1 1 1 1 1 1 1 1 1 1 ==>8191
    1 1 1 1 1 1 1 1 1 1 1 1 1 ==>8191
    1 1 0 0 0 0 0 0 0 0 0 1 1 ==>6174
    1 1 0 0 0 0 0 0 0 0 0 1 1 ==>6174
    1 1 0 0 0 0 0 0 0 0 0 1 1 ==>6174
    1 1 0 0 0 0 0 0 0 0 0 1 1 ==>6174

    Cái này chính là font vetor đó. Ý tưởng là như vậy.
    Đã được chỉnh sửa lần cuối bởi tuannq2367 : 11-01-2008 lúc 11:34 AM.
    Ngại coding lắm rồi.

  5. #5
    Ngày gia nhập
    12 2007
    Nơi ở
    hồ chí minh
    Bài viết
    13

    Ok ! mình đã đọc ý tưởng của tuannguyen2376 rồi .Thank bạn rất nhiều , mình đang thử code theo cách của bạn .Nếu có thắc mắc rất mong bạn giúp mình.
    Cảm ơn pro nhiều nha.
    Tất cả những gì không thể mua được bằng tiền thì đều có thể mua được bằng rất nhiều tiền

  6. #6
    Ngày gia nhập
    12 2007
    Bài viết
    224

    Mặc định Giải thuật set trên từng pixel điểm ảnh

    mình ko có hiểu bạn muốn nói gì lắm nhưng mà mình có thể dùng chuột vẽ các pixel theo ý thích . chắc viết chữ cũng được hỉ . ^^

  7. #7
    Ngày gia nhập
    12 2007
    Nơi ở
    hồ chí minh
    Bài viết
    13

    không phải dùng chuột để vẽ bài này mà giả sử như này nha: Khi bạn nhấn phím "a" thì trên màn hình sẽ vẽ ra chữ a ,.v.v. nhấn phím nào sẽ vẽ chữ tương ứng.Nhưng cái khó ở bài này mình thấy là ở chỗ ta phải vẽ trên từng điểm ảnh của màn hình .Mình đang code nhưng vẫn chưa được...đang suy nghĩ
    Tất cả những gì không thể mua được bằng tiền thì đều có thể mua được bằng rất nhiều tiền

  8. #8
    Ngày gia nhập
    12 2007
    Bài viết
    224

    bấm phím a thì trên màn hình sẽ vẽ ra chữ a hả . theo từng pixel hả ? bạn thử tham khảo đoạn code này của mình có đúng ý bạn ko nghe .
    Code:
    void in_ky_tu(int x,int y,char c,unsigned char color,int transparent,unsigned char far *vb);
    void in_ky_tu(int x,int y,char c,unsigned char color,int transparent,unsigned char far *vb)
    {
     int offset;
     int i,j;
     unsigned char far *work_char;
     unsigned char bitmask;
     work_char=rom_char_set+c*8;
     offset=(y<<8)+(y<<6)+x;
     for(j=0;j<8;j++)
     {
      bitmask=0x80;
      for(i=0;i<8;i++)
      {
       if(*work_char&bitmask)
       vb[offset+i]=color;
       else
       if(!transparent)
       vb[offset+i]=0;
       bitmask=bitmask>>1;
      }
      offset+=320;
      work_char++;
     }
    }
    Để sử dụng cái nì bạn phải set mode màn hình là 640*480 nhé ( dùng int 10h set 13 ) .

Các đề tài tương tự

  1. Thuật toán midpoint dành cho hệ tọa độ không phải pixel trong OpenGL
    Gửi bởi kazat trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 0
    Bài viết cuối: 25-03-2012, 11:01 AM
  2. Graphic Cách xử lý ảnh trên pixel theo Motion Blur và Saturation như thế nào?
    Gửi bởi lenhatnguyen trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 1
    Bài viết cuối: 05-10-2011, 08:55 PM
  3. Graphic Thuật toán duyệt tọa độ pixel trong C#?
    Gửi bởi nctit09 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 2
    Bài viết cuối: 20-03-2011, 12:59 PM
  4. Tăng,giảm pixel trên cửa sổ đồ họa BC
    Gửi bởi lenhatnguyen trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 0
    Bài viết cuối: 25-11-2010, 12:23 AM
  5. Xử lý va chạm từng pixel (Collision Detection per Pixel) ?
    Gửi bởi mysuncl trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 1
    Bài viết cuối: 25-05-2008, 12:06 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn