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

Đề tài: lập trình đồ họa cho Airbrush (Brush User Interface)

  1. #1
    Ngày gia nhập
    01 2012
    Bài viết
    8

    Mặc định lập trình đồ họa cho Airbrush (Brush User Interface)

    Code:
    #include "ScreenPoint.h"
    #include "BrushInterface.h"
    #include <FL/Fl.H>
    #include <FL/Fl_Choice.H>
    #include <FL/Fl_Value_Slider.H>
    #include <FL/fl_draw.H>
    #include <FL/gl.h>
    #include <cstring>
    #include <cmath>
    
    MyBrush::MyBrush() 
    {
        isMouseDown = false;
    
        imageWidth  = screenWidth = 0;
        imageHeight = screenHeight = 0;
    
        // initialize your data here
    }
    
    MyBrush::~MyBrush() {
        // destroy your data here
    }
    
    void MyBrush::resize(int width, int height) {
        screenWidth  = width;
        screenHeight = height;
    
        // First time initialization
        if ( imageWidth == 0 ) {
            imageWidth = screenWidth;
            imageHeight = screenHeight;
    
            // Make image black
            pixelData.resize( width * height * 3, 0 );
        }
    }
    
    void MyBrush::loadImage(Fl_Image* image) {
        imageWidth = image->w();
        imageHeight = image->h();
        // Reset viewport
        resize( screenWidth, screenHeight );
        pixelData.resize( imageWidth * imageHeight * 3, 0 );
    
        // OpenGL's windows are reversed in y
        const int delta = imageWidth * 3;
        unsigned char* src = (unsigned char*) *image->data();
        for (int i = 0; i < imageHeight; i++) {
            
            unsigned char* dest = &pixelData[ ((imageHeight - 1 - i) * imageWidth * 3) ];
            memcpy(dest, src, delta);
            src += delta;
        }
    }
    
    void MyBrush::draw() {
        // Set up camera for drawing
        setup2DDrawing( Color(0,0,0), screenWidth, screenHeight );
    
        glPixelStorei(GL_PACK_ALIGNMENT, 1);
        glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
    
        // Draw a border around the actual image
        glColor3f(1.0f, 1.0f, 1.0f);
        glBegin(GL_LINE_LOOP);
        glVertex2i( 0,            0 );
        glVertex2i( imageWidth+1, 0 );
        glVertex2i( imageWidth+1, imageHeight+1 );
        glVertex2i( 0,            imageHeight+1 );
        glEnd();
    
    
        glRasterPos2i(0, 0);
        // Copy data into window
    	//for ( int iX = 0; iX < 100; iX++ )
    		//putPixel( iX, iX, Color(1,0,0) );
    
        glDrawPixels(imageWidth, imageHeight, GL_RGB, GL_UNSIGNED_BYTE, &pixelData[0]);
    
    	// These 5 lines draw a white line across your canvas
    	// Remove this and replace it with intelligent OpenGL preview code
    	glLineWidth( 10);
    	glBegin( GL_LINES );
    	glVertex2i( 100, 100 );
    	glVertex2i( 200, 200 );
    	glEnd();
    
        // Add in your OpenGL pre-view code here
    
        // display draw in progress (mouse is down)
        if (isMouseDown) {
        }
        endDrawing();
    }
    
    // This does pixel flow
    void MyBrush::draw_callback( void *in_data )
    {
        MyBrush *opMe = static_cast<MyBrush *>( in_data );
    
        // Repeat the time out if we're not done yet
        if ( opMe->isMouseDown == true ) {
            opMe->drawBrush();
    
            Fl::repeat_timeout( 0.05, MyBrush::draw_callback, (void *) opMe );
    
            RedrawWindow();
        }
    }
    mình không biết làm sao hiển thị vẽ brush nên mong mọi người giúp đỡ
    mình thử chạy chương trình nhưng ko có gì hiển thị trên màn hình khi mà mình chọn công cụ brush
    cảm ơn nhiều
    Đã được chỉnh sửa lần cuối bởi cql : 28-01-2012 lúc 08:05 AM.

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

  1. Khuyến mãi bàn là hơi nước cầm tay Stemer Brush nay còn 195.000
    Gửi bởi muachunghn8 trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 24
    Bài viết cuối: 11-12-2012, 11:14 AM
  2. Graphic làm sao để chọn màu và kiểu brush khi vẽ !
    Gửi bởi mrqvinh trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 2
    Bài viết cuối: 19-06-2011, 07:46 PM
  3. Trả lời: 6
    Bài viết cuối: 01-05-2011, 09:42 AM
  4. Detect User Hook by user mode code?
    Gửi bởi benina trong diễn đàn Windows API, Hooking, xử lý Windows Message
    Trả lời: 0
    Bài viết cuối: 18-04-2010, 10:01 AM
  5. jQuery UI 1.6: The User Interface Library for jQuery
    Gửi bởi quachnguyen trong diễn đàn Tài liệu, ebooks và công cụ
    Trả lời: 0
    Bài viết cuối: 22-02-2009, 11:46 AM

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