anfängerfrage

W

webraccoon

Hallo Leute,

ich spiel grade ein wenig mit C herum und dachte mir, es muss doch möglich sein eine Sinuskurve sich ausgeben zu lassen. Mir steht nur ANSI C zur Verfügung.

Hat jemand ein Idee, wie ich das anstelle? Mit der sin-Funktion kann ich mir ja die Werte von 0 bis 360 ausgeben lassen. Nun müsste ich doch diesen Werten nur noch ein Pixel zuordnen, oder

gruss
webraccoon
 
Hallo,

Der Sinus aus der math.h nimmt keine Werte in Grad an sondern in Rad (zwischen 0 und 2*pi). Dabei kann man auch größere Werte als Argument übergeben, aber es erfolgt intern halt immer ein modulo 2*pi da ja Sinus periodisch ist mit 2*pi.

Mit Ansi C kann man nicht zeichnen (höhstens du verwendest buchstaben als "Pixel").

Sinus liefert als ergebnis ein Wert aus [-1;1] ; Um das einem Pixel zuzuordnen musst du halt noch skalieren z.b mit 200; Die x-Achse müsstest auch skalieren (z.b.: in dem du rad in Grad umrechnest).
 
aha,

ja gut als Pixel könnte ich mir auch einen Punkt vorstellen.
Die Frage ist aber, wie bekomme ich irgendeine Augabe an einer bestimmten Stelle hin?
Ich benutze übrigens DEV C++ als Compiler.
 
moin


Etwas derartiges darzustellen ist sehr einfach, vorrausgesetzt zu hast die windows.h:

Code:
#include <windows.h>


int main()
{

	SetConsoleTitle("test");
	HWND hWnd = FindWindow(NULL, "test"); 

	HDC hDC = GetDC(hWnd);

		// Zum zeichnen eines einzelnen Pixels
		SetPixel(hDC, 100, 100, RGB(255, 0, 0));
		
		//Wir brauchen einen Stift
		SelectObject(hDC, CreatePen(PS_SOLID, 1, RGB(0, 255, 0)));
		
		// Zu zeichnen einer Linie
		MoveToEx(hDC, 5, 5, NULL);
		LineTo(hDC, 600, 300);

		//Wir erstellen einen Pinsel
		SelectObject(hDC, CreateSolidBrush(RGB(0, 0, 255)));

		//Zum zeichnen eines Kreises
		Ellipse(hDC, 1, 1, 100, 100);

	ReleaseDC(hWnd, hDC);

	Sleep(8000);

	return 0;
}


mfg
umbrasaxum
 
hmm,

danke, das ist c++.
Gibt es ein Pendant zu C? Dafür muss ich auch ein Windows Projekt anlegen.
Ich bilde mir ein, sowas auch mal auf einer Konsole als Ausgabemedium gesehen zu haben.
 
moin


danke das ist C++ .... Dafür muss ich auch ein Windows Projekt anlegen.

Falsch! Es ist eine Konsolenanwendung, zusehen an der main Funktion.
Du kannst Konsolenanwendungen mit C oder C++ schreiben, auch kannst du es mischen.

C++ bedeutet nicht Windowsprogrammierung!

Ich habe hier nur ein paar API Befehle zur Hilfe genommen.


mfg
umbrasaxum
 
Zuletzt bearbeitet:
Das ist ja heiß, man kann auch das Konsolenfenster wie ein normals Fenster behandeln, Danke wusste das nicht.

Man kann halt nicht ohne weiteres ein WM_PAINT abfangen aber ne coole Sache !
 
Zurück