guide çizim yapmak

Başlatan speak48, 17 Nisan 2012, 17:24:56

speak48

herkese selam
söyle birşey yapmak istiyorum ama nasıl neyle yapılacağını bulamadım

c++ da bir konsol ve bir arayüzü olacak  konsoldan  x y ve renk kodunu girecem bunu arayüzde çizecek bunu ne ile yapabilirim devcpp ,vc++ , picture box ?
oop ve arayüz yazma bilmiyorum kodla açıklarsanız sevinirim

teşekkürler

electronious

ctrl+t -> google -> c, c++, c# -> arayüz tasarımı -> ............. -> kısacası emek harcamak

daha basiti -> ctrl+w

speak48

bulamadım demek ne anlama geliyor heralde bilmiyorsun.
gtk++,smartwin++,wxwidgets,fltk kütüphanelerine baktım ama bi matlab gibi helpi olmadıkları için nasıl yapılacağını bulamadım.
senin verceğin cevabıda artık kabul etmiyorum sen yardımcı olma eksik olsun.....

speak48

https://www.picproje.org/index.php/topic,36922.0.html linkinde sende arayüz tasaramıyla yardım istemişsin niye ctrl-T yapamadın?(!)

kralsam

Hocam basitlik açısından c# önerebilirim. Tam olarak kullanabilmek için ekstradan bir derleyiciye bile ihtiyacın yok. Framework yüklü olsun yetiyor. Fakat ders alırken nette bende kaynak bulamamıştım pek. Eğer örnek üzerinden öğrenebilirsen bir ara bir yere yüklemeye çalışayım örnekleri. Ama istersen bir örnek olarak sitemde paylaşmıştım.
Bu arada oradaki her çizimi komutla ve tek dosya içinde yaptığımdan biraz karışık gelebilir.
http://www.mafgom.com/c-ile-analog-saat-pic16f877a-ve-pcf8583-rtc-kullanarak/

speak48

c++ olma zorunluluğu var ve ya devcpp ta yada visual studioda da olmak zorunda

electronious

Alıntı yapılan: speak48 - 17 Nisan 2012, 22:09:58
https://www.picproje.org/index.php/topic,36922.0.html linkinde sende arayüz tasaramıyla yardım istemişsin niye ctrl-T yapamadın?(!)
Alıntı YapMerhaba arkadaşlar,

Arayüz tasarımını öğrenmek istiyorum. C biliyorum ve biraz C++ bilgim var. Özellikle Microsoft VS 2010 ile çalışmak istiyorum. Bununla ilgili kaynak site-kitap vb. tavsiyelerinizi esirgemezseniz sevinirim.

İyi çalışmlar herkese

Bakın ben burda tavsiye istemişim. Yani insanların fikir-tavsiyelerini almak istemişim. ama senin isteğine bak bir daha karşılaştır.

Alıntı Yapoop ve arayüz yazma bilmiyorum kodla açıklarsanız sevinirim

Bana kızma lütfen. Ben sadece yukarıdaki gibi kodla açıklayın, ödevimi yapın vb. tarzdaki hazıra konma sorularını sevmiyorum ve tepki veriyorum. Sizin sorunuzdaki amaç bu değilse özür dilerim. Siz de spesifik sorular sorarsanız daha iyi olur.

elektronikhobi

C++ ile yapmak istiyorsunuz bunun en kolay yöntemi hazır bir grafik kütüphanesi kullanmaktır.

Ben geçenlerde Bjarne Stroustrup'un yeni kitabı An Introduction to Programming by the Inventor of C++ ye göz gezdirirken bir bölümünde bu kütüphaneyi kullandığını gördüm ve çok şaşırdım.

http://bit.ly/yHz8mV

Bu adresten indirilebiliyor.

http://www.fltk.org

Hatta yanında Stroustrup'un kitabı da alınırsa tadından yenmez  :D

speak48

heralde teknik bir konu kodla açıklanmıyacakta mani düzerek mi  açıklanacak.
gelen açıkmalara göre konuyu şekillendirip detaylandırmayı da düşünüyordum ama cevaplar konudan uzak
winbglm kütüphanesini buldum ama performansı yavaş geldi
640*480 pixel renk verme işlemi  0.5 ,1 saniyeye yakın sürüyor.

speak48

herkez birbirine birşeyler öneriyor ama bari bilselerde önerseler milletide yanlış yönlendirmeseler
çözüm basitmiş diyeceğiniz win32 apilerine bak en kesin çözüm odur.
yemişim c#pını hazır kütüphanesini orjinali varken
bari ben birşeyler paylaşayımda başka arayanlar kaybolmasın
#include <stdio.h>
#include <windows.h>
#include <iostream>

using namespace std; 

  HDC hDC; 
  int hedefX=10;
   int hedefY=10;


LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{




  PAINTSTRUCT ps; 
      char szTitle[] = "These are the dimensions of your client area:";
    switch(msg)
    {
		case WM_MOUSEMOVE:
	hedefX = LOWORD(lParam); 
	hedefY = HIWORD(lParam); 
	SetPixel(hDC,hedefX,hedefY,0x00ff0000);
	break;
     
        break;

        case WM_CLOSE:
            DestroyWindow(hwnd);
        break;
		case WM_PAINT:
	   hDC = BeginPaint(hwnd, &ps); 
	   	SetPixel(hDC,hedefX,hedefY,0x00ff0000);
//EndPaint(hwnd, &ps); 
        
        break;
        case WM_DESTROY:
            PostQuitMessage(0);
        break;
        default:
            return DefWindowProc(hwnd, msg, wParam, lParam);
    }
    return 0;
}
	

DWORD WINAPI mytread(LPVOID lpArg)
{


	 WNDCLASSEX wc;
    HWND hwnd;


    //Step 1: Registering the Window Class
    wc.cbSize        = sizeof(WNDCLASSEX);
    wc.style         = 0;
    wc.lpfnWndProc   = WndProc;
    wc.cbClsExtra    = 0;
    wc.cbWndExtra    = 0;
    wc.hInstance     = 0;//hInstance;
    wc.hIcon         = LoadIcon(NULL, IDI_APPLICATION);
    wc.hCursor       = LoadCursor(NULL, IDC_ARROW);
	wc.hbrBackground = (HBRUSH)(31);//(0x00ff0000);//(HBRUSH)(COLOR_WINDOW+1);
    wc.lpszMenuName  = NULL;
    wc.lpszClassName = "myvgaapi";//g_szClassName;
    wc.hIconSm       = LoadIcon(NULL, IDI_APPLICATION);

    if(!RegisterClassEx(&wc))
    {
        MessageBox(NULL, "Window Registration Failed!", "Error!",
            MB_ICONEXCLAMATION | MB_OK);
        return 0;
    }

    // Step 2: Creating the Window
    hwnd = CreateWindowEx(
        WS_EX_CLIENTEDGE,
      "myvgaapi",
        "vgaapi",
        WS_OVERLAPPEDWINDOW,
        CW_USEDEFAULT, CW_USEDEFAULT, 640+17, 480+40,
        NULL, NULL, 0, NULL);

    if(hwnd == NULL)
    {
        MessageBox(NULL, "Window Creation Failed!", "Error!",
            MB_ICONEXCLAMATION | MB_OK);
        return 0;
    }

	ShowWindow(hwnd,SW_NORMAL);// nCmdShow);
    UpdateWindow(hwnd);












	int i=0;
		 MSG mesaj;
		cout<<"msj"<<endl;
    while(1)
    {
		if(GetMessage(&mesaj, NULL, 0, 0))
		{
		//GetMessage(&mesaj, NULL, 0, 0);
        TranslateMessage(&mesaj);
		cout<<"msj"<<i++<<endl;
        DispatchMessage(&mesaj);
		}
    }
	return NULL;
}
	

	
int main()
	{	

getchar();


	int *lpArgPtr;
	HANDLE tutac;
	DWORD tid;
	
	lpArgPtr = (int *)malloc(sizeof(int));
	*lpArgPtr = 1;
	tutac = CreateThread(NULL,0,mytread,lpArgPtr,0,&tid);
		if (tutac == NULL) {
			fprintf(stderr,"Could not create Thread\n");
			exit(0);
		}
		else printf("Thread %d was created\n",tid);



    // Step 3: The Message Loop

    getchar();
}