![]() |
In C ein Pixel Zeichnen
Hallo,
ich beschäftig mich mit einiger Zeit mit C und möchte jetzt anfangen das ganze etwas grafischer zu gestallten. Leider finde ich nicht einmal einen Quellcode mit dem ich ein einzelnes Pixel in einer bestimmten Farbe setzen kann.... über Google bekomme ich ständig nur Hilfe für C++ oder C# :-( Kann mir wer sagen wie ich C ein Pixel zeichne, bzw wo ich Infos finde? Danke |
Re: In C ein Pixel Zeichnen
Ich würde sagen, genauso wie unter Delphi, nur ohne Canvas: Über die WinAPI. Schau dir mal den Source von TCanvas an.
|
Re: In C ein Pixel Zeichnen
Hello,
thx, wie der Zufall es will hab ich grad eine Seite gefunden ![]() glaube da finde ich meine Antworten, muss mal ein wenig darin stöbern |
Re: In C ein Pixel Zeichnen
Also wenn du das ganze so machen willst wie bei Canvas.Pixels, dann würde ich sagen, das ist absolut das falsche. ;)
|
Re: In C ein Pixel Zeichnen
Canvas gibt es auch nur im CodeGear C++-Builder ;)
Leider verrätst du uns nicht welchen Compiler/welche IDE du benutzt. C hat an sich keine Funktionen um Fenster zu erstellen usw, je nach Methode die du wählst um etwas grafisch darzustellen ist auch der Code anders um bestimmte Pixel zu setzen. |
Re: In C ein Pixel Zeichnen
Komm da eh nicht weiter :-(
Bin eh schon am verzweifeln, wo find ich den was mit canvas + c ??? kennt wer eine seite die mir weiterhilft? EDIT: Ich verwende Microsoft Visual Studio 2005 Express |
Re: In C ein Pixel Zeichnen
Du sollst es nicht in C suchen, sondern in Delphi. Da schaust du im Source von TCanvas nach, wie beim Setter der Property Pixels das ganze gemacht wird. Also wie der API-Aufruf heißt.
|
Re: In C ein Pixel Zeichnen
wenn du nur einen Kommandozeilencompiler hast ist die Vorgehensweise wie NonVCL in Delphi. Alles von Grundauf neu machen oder du nimmst fertige Bibliotheken.
Das einfachste wäre wenn du uns verrätst was du genau verwendest. Welchen Compiler, welche IDE?! |
Re: In C ein Pixel Zeichnen
Zitat:
Entweder direkt per VGA, wenn es ein Kommandozeilenprogramm ist. Schau mal, ob du ![]() Oder du nimmst OpenGL oder DirectX. Oder (in Delphi ist es so) ein TImage/TPaintBox und zeichnest auf deren Canvas (Eigenschaft der Objekte). |
Re: In C ein Pixel Zeichnen
Hallo,
ich will einfach nur ein Pixel Zeichen, dann vlt einen Strich und so weiter. einfach um zu lernen wie es unter C geht. Wenn es da schon eine fertige Libary geht wäre das super, das Problem ist das Google überhaupt keine verwertbaren Seiten rauswirft. Meine IDE ist: Microsoft Visual C++ 2005 (aber reines C Projekt) Es handelt sich um ein reines Konsolenprogramm |
Re: In C ein Pixel Zeichnen
in einem Consolenprogramm musst du dir zuerst ein Handle auf ein DeviceContext holen. Am einfachsten mit GetDC und 0 übergeben um direkt auf den Desktop zu malen (wenn du kein eigenes Fenster erstellen willst). Und dann gibt es Funktionen um einzelne Pixel zu setzen (Zum Beispiel die ApiFunktion SetPixel).
|
Re: In C ein Pixel Zeichnen
0? Ich dachte man soll dafür GetDesktopWindow() verwenden?
|
Re: In C ein Pixel Zeichnen
GetDesktopWindow kann man auch verwenden. 0 geht aber ebenso
|
Re: In C ein Pixel Zeichnen
wenn du in c was zeichnen willst empfehle ich dir die bibliothek OpenCV
die hilfe dazu is eigentlich sehr gut gefuehrt und man kann damit super einfach zeichnen etc. eigentlich genausogut wie mit dem Delphischen Canvas. Dazu is der ganze Spass von Intel und sehr geschwindigkeitsoptimiert. Hab damit nur gute erfahrungen gemacht |
Re: In C ein Pixel Zeichnen
Naja, die Frage ist ob das C ist oder dann doch schon C++
Wenn er wirklich reines C verwenden will gibt es nicht ganz so viel zur Auswahl |
Re: In C ein Pixel Zeichnen
Hallo,
es muss reines C sein... Ich habe grad das ausprbiert, es kommt kein Fehler, aber es erscheint auch nix am Bildschirm... ist das so richtig??
Code:
[edit=SirThornberry]Delphi-Tags durch c-Tags ersetzt - Mfg, SirThornberry[/edit]
#include <windows.h>
void main() { HDC desktop=GetDC(0); SetPixel(desktop,20,20,0xFFFFFF); system("pause"); } |
Re: In C ein Pixel Zeichnen
ok sorry hatte nur auf das C ansich geachtet .... :P nich dass C++ nich dabei sein darf. dan nweis ich auch ncih weiter
|
Re: In C ein Pixel Zeichnen
Zitat:
Zitat:
![]() |
Re: In C ein Pixel Zeichnen
wo find ich den die graphics.h für c?
find da dauernd nur für c++.... |
Re: In C ein Pixel Zeichnen
Ja einfach mal den Beispielcode da kopieren und versuchen zu compilen. Gibt auch ne Dateisuche unter Windows soweit ich weiß. :gruebel:
Stell dich doch net so an, Jung ... ;) |
Re: In C ein Pixel Zeichnen
lol,
glaubst ich such nicht dannach^^?? und den Beispielode kann ich nicht kompilieren
Delphi-Quellcode:
1>d:\programmieren\c\pixel malen\main.c(2) : fatal error C1083: Datei (Include) kann nicht geöffnet werden: "graphics.h": No such file or directory
|
Re: In C ein Pixel Zeichnen
Wenn du nirgends auf deiner Platte graphics.h hast, geht es nicht mit der "alten" Variante.
Da mußt du auf visuelle Komponenten zurückgreifen (Image/PaintBox), GDI, OpenGL oder DirectX. |
Re: In C ein Pixel Zeichnen
C hat doch keine Komponenten oder?
Muss doch irgendwie in einer C Konsolenanwendung möglich sein ein Pixel zu zeichnen, phu dachte nicht das das so schwer is.... :shock: glaub ich las es mal bleiben und schlaf drüber |
Re: In C ein Pixel Zeichnen
Zitat:
Zitat:
Wo willst du denn draufmalen, auf den Desktop ? Dein C hat bestimmt eine Hilfe, guck da mal nach ![]() // Edit: Ach ich Dussel, steht ja weiter oben. (habe es wohl übersehen... :wall: ) |
Re: In C ein Pixel Zeichnen
Es ist ja auch nicht wirklich schwer. In Delphi ist es nur so schön einfach, weil einem da die VCL viel abnimmt. Aber sogar da muss man, um auf den Desktop zu malen, API-Aufrufe benutzen. (Oder zumindest mit ein paar Handles jonglieren)
|
Re: In C ein Pixel Zeichnen
Zitat:
a) klassisch, durch programmierung des bildschirmspeichers b) durch programmierung der grafikkarte c) durhc nützen einer schnittstelle wie Open GL d) durch nützen von anderen modulen/komponenten (z. b. zugekauft) wobei bei a) auch gute assemblerkenntnise nicht abträglich sind. <HTH> |
Re: In C ein Pixel Zeichnen
Habs jetzt endlich geschafft
Code:
#include <windows.h>
void main(void) { int y, x; HDC hdc = GetDC(0); system("pause"); for(x = 0; x <= 1400; x++) for(y = 0; y <= 1050; y++) SetPixel(hdc, x, y, RGB(0, 255, 255)); } geht doch mit SetPixel..... mein Problem is aber jetzt, das die Pixel am Bildschirm und nicht im Programm gemalt werden.... wie kann ich direkt im Programm zeichnen? SPrich es soll nur in der Konsolen Anwendung gezeichnet werden? Bzw wenn ich die Dos Konsole im Vollbild starte, dann wird gar nix gezeichnet [edit=SirThornberry]Delphi-Tags durch C-Tags ersetzt - Mfg, SirThornberry[/edit] |
Re: In C ein Pixel Zeichnen
Zitat:
![]() /EDIT: Sorry, hatte die zweite Seite übersehen - ist somit hinfällig... |
Re: In C ein Pixel Zeichnen
Jetzt heißt es für dich noch OH anschauen. Denn wer Ressourcen anfordert hat sie auch frei zu geben. Desweiteren solltest du prüfen ob GetDC erfolgreich war befor du mit dem Rückgabewert weiter arbeitest.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:09 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz