Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Portal
  • |
  • Mitglieder
Beiträge von Stu42
Thema: Vector3 in Bildschimkoordinaten
Am im Forum: Grafik und Sound

Perfekt.

Vielen dank, der Beitrag hat mir sehr gehohlfen.

Zitat
Ist jetzt nur geraten, aber aus dem Vektor (0|0|0) sollte doch auch (0|0) herauskommen.

der Vector(0|0|0) ist der Ursprung des Koordinatensystems, standardmäßig in der Mitte des DirectX Fensters liegt.

Thema: Vector3 in Bildschimkoordinaten
Am im Forum: Grafik und Sound

Hallo,

ich habe einen Vector3 und möchten diesen in Bildschirmkoordinaten umrechnen, damit ich dort einen 2D Text hinschreiben kann.

Nun hab ich mich schlau gemacht, und gelesen das die Umrechnung wie folgt funktioniert.

2D-Punkt = 3D-Punkt * WorldMatrix * ViewMatrix * ProjectionMatrix;
dann X und Y durch W teilen und auf den Bildshirmskalieren.

Mein Code



_Device.Transform.World = Matrix.Translation(0, 0, 0);
_Device.Transform.View = Matrix.LookAtLH(new Vector3(2, 2, 2), new Vector3(0, 0, 0), new Vector3(0, 1, 0));
_Device.Transform.Projection = Matrix.OrthoLH(5, 5, 1, 10);

Vector3 p = new Vector3(0, 0, 0); //Koordinaten Ursprung
p.TransformCoordinate(_Device.Transform.World);
p.TransformCoordinate(_Device.Transform.View);

Vector4 zwichen = new Vector4(p.X, p.Y, p.Z, 1); //aus der verrechnung mit der Projectionmatrize kommt ein Vector4 heraus
zwichen.Transform(_Device.Transform.Projection);

Vector2 v = new Vector2(zwichen.X / zwichen.W, zwichen.Y / zwichen.W);

Bei der Berechnung ist "v" leider immer 0. Was mache ich falsch?

Schöne Grüße,
Stu

Thema: DropDownList einer ComboBox neuzeichnen
Am im Forum: GUI: Windows-Forms

Zitat
Meinst du, daß sich bei dir die Einträge in der DropDown-Liste ändern, während du sie geöffnet hast?

Richtig.

Aber wenn ich 10 Items habe die alle nacheinander aktualisiert werden, würde die DropDownListe ja 10 mal wieder auf un zu gehen.

Thema: DropDownList einer ComboBox neuzeichnen
Am im Forum: GUI: Windows-Forms

Hallo,

gibt es eine Möglichkeit die DropDownList einer Combo zu "invalidieren"?
Denn mit Invalidate wird nur die ComboBox ansich neu gezeichnet.

Gruß Stu

Thema: Auf ein Bild drucken...
Am im Forum: Grafik und Sound

Ahja, das ist ne sehr gute Idee. So werde ich es machen. Vielen Dank.

Thema: Auf ein Bild drucken...
Am im Forum: Grafik und Sound

Zitat
Wozu ? Es gibt doch schon eine fertige Vorschau.

Da hab ich die Ausgabe aber nicht in Form eines Image´s.
Zitat
dafür kannst du ja das Graphics-Objekt statt aus den PrintPageEventArgs von einer vorher erzeugten Bitmap nehmen. Dann landet die Druckausgabe in einem Bild.

Ja daran hab ich auch schon gedacht. Ist aber unschön weil ich dann die Print routine kopiern muss, und dann ist alles doppelt. Wäre halt schön wenn es auch anderst gegangen wär.

Thema: Auf ein Bild drucken...
Am im Forum: Grafik und Sound

Hallo,

ich habe ein PrintDocument. Nun möchte ich aber das, was voraussichtlich gedruckt wird als Vorschau anzeigen. Kann ich die Druckausgabe irgendwie auf ein Bild umleiten? (wie der PrintPreviewDialog)

Gruß Stu

Thema: GDI+ schneller unter vista?
Am im Forum: Grafik und Sound

Zitat
Warum sollte das unter Vista nicht so lange brauchen?

Wie funktioniert das denn mit den Zeichnen? Unter der GDI wird doch erstmal alles in den normalen speicher geladen, und dann irgentwann umgeflippt.

Wäre es nicht möglich das Windows Vista Grafiken direkt zur Grafikkarte überträgt, und dass das Neuzeichnen (Invalidate()) dann auf kosten der Grafikkarte geht?

Thema: GDI+ schneller unter vista?
Am im Forum: Grafik und Sound

Das man aufwendigen Grafikkrams anderst lösen sollte, sollte jedem klar sein.

Aber nehmen wir mal die Funktion Invalidate().
Wenn ich alles neuzeichne dauert das ja "länger", also wenn ich Invalidate(Rectanlge) aufrufe.

Bei Invalidate(Rectanlge) werden die Paint Funktionen aber auch alle durchlaufen wie beim normalen Invalidate.

D.h. doch, dass das "Auf-den-bildschirm-zeichnen" schon recht lange dauert. Und genau das sollte ja mit Vista beschleunigt sein.

Thema: GDI+ schneller unter vista?
Am im Forum: Grafik und Sound

Hallo,

die API wurde unter Vista ja mit DirectX beschleunigt. Würde das auch heißen, das die GDI+ beim zeichnen schneller ist? Bzw dass das Zeichnen mehr von der Grafikkarte übernommen wird? (unter Vista)

Gruß Stu

Thema: Leerzeichenpunkt abschalten
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

ah vielen Dank...

Ich habe immer irrtümlicher weise unter "Extras - Optionen" gesucht.

Thema: Leerzeichenpunkt abschalten
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo!

ich hab irgend eine Tastenkombination im VS 2005 gedrückt , und nun werden mir solche Leerzeichenpunkte (oder wie auch immer man die nennt) angezeigt.

Hat jemand eine Ahnung, wie man diese wieder abschalten kann?


Gruß Stu

Thema: Große Datenmengen und ZedGraph
Am im Forum: Grafik und Sound

Zitat
Nochmal kompakt: Ist obige Themenstellung mit ZedGraph und überschaubarem Aufwand machbar. Oder gibt es bessere Bibliotheken?!

Ja ist es. Der ZGraph ansicht ist echt gut programmiert. Solltest du dort ein event oder so nicht finden, so kannst du es einfach einbauen.

In den ZedGraph kannst du alle Graphen einfügen, die von der Klasse CurveItem abgeleitet sind.

Wenn du nun bestimmte Sachen machen willst, kannst du dir ganz einfach nen eigenes CurveItem erstellen, und z.B. den Graphen selbst Zeichnen.

Alle vordefinierte CurveItems , wie z.B. das LineItem, nutzen als Datenquelle die "IPointList".

Wenn du dir nun eine eigene IPointList schreibst, kannst du die filterfunktionen dort bequem einbauen, und z.B. nur jeden 1000sten punke zurückgeben (wäre ein einfacher filter). So müsstest du die Datenauch nicht noch kopieren.

Ich arbeite mit dem ZedGraph schon länger, und ich hab bis jetzt alles schaffen können.

Nun zu dem Zoom event, die oben angefragt wurden (Ich poste das hier mal aus dem Code):


/// <summary>
		/// A delegate that allows notification of zoom and pan events.
		/// </summary>
		/// <param name="sender">The source <see cref="ZedGraphControl"/> object</param>
		/// <param name="oldState">A <see cref="ZoomState"/> object that corresponds to the state of the
		/// <see cref="GraphPane"/> before the zoom or pan event.</param>
		/// <param name="newState">A <see cref="ZoomState"/> object that corresponds to the state of the
		/// <see cref="GraphPane"/> after the zoom or pan event</param>
		/// <seealso cref="ZoomEvent" />
		public delegate void ZoomEventHandler( ZedGraphControl sender, ZoomState oldState,
			ZoomState newState );

		/// <summary>
		/// Subscribe to this event to be notified when the <see cref="GraphPane"/> is zoomed or panned by the user,
		/// either via a mouse drag operation or by the context menu commands.
		/// </summary>
		[	Bindable( true ), Category( "Events" ),
			Description( "Subscribe to this event to be notified when the graph is zoomed or panned" )]
		public event ZoomEventHandler ZoomEvent;

Thema: Ressourcendatei laden...
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Ja aber wie gebe ich denn mein Bild aus der Recourcendatei zurück?

Wie oben beschrieben, in C# mit Namespace.Ressourcendatei.MeinBild.

Das muss doch in C++ auch gehen. Ich habe eben geschaut was der Disigner für einen Code für die Ressourcen-Properties generiert, Unzwar:

RessourceManager.GetObject.

D.h also meine Resourcen werden nicht geladen. Aber warum nicht?

Thema: Ressourcendatei laden...
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Ok, die InnterException der TargetInvocationException ist:

{"Für die angegebene Kultur oder die neutrale Kultur konnten keine Ressourcen gefunden werden. Stellen Sie sicher, dass UI.resources beim Kompilieren richtig in die Assembly MeinProject eingebettet wurde, oder dass die erforderlichen Satellitenassemblys geladen werden können und vollständig signiert sind."}

Heißt also meine Resource wurde nicht einkompiliert?

Thema: Ressourcendatei laden...
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hatte ich auch schon probiert, dann mache ich aber etwas falsch.

Meine Ressourcendatei heißt "UI.resx" und ist in einem Unterordner.

Nun sage ich:

ResourceManager ^ rm = gcnew ResourceManager("UI",Assembly::GetExecutingAssembly());

Dann will ich das Bild laden, also:

Image::FromStream(rm->GetStream("MeinBild"));

Daraufhin bekomme ich aber eine TargetInvokationException.

Thema: Ressourcendatei laden...
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo,

ich habe eine Ressourcendatei in der ein Image ist.

Nun will ich diese Laden. Das würde ich in C# wie folgt machen:

Image i = Namespace.Ressourcendatei.MeinBild;

Nun hab ich aber nen C++ Projekt und da geht diese Schreitweise natürlich nicht.

Wie würde man denn ohne "einfaches draufzugreife", also durch die gegebenen Ressourcenklassen, auf einkompilierte Ressoucendatei zurgreigen?

Gruß Stu

Thema: Nativer Code und .NET code in einer Win32 DLL
Am im Forum: Rund um die Programmierung

Ich hab den Fehler gefunden.

Ich musste Assembly.LoadFile, statt Assembly.Load aufrufen

Thema: Nativer Code und .NET code in einer Win32 DLL
Am im Forum: Rund um die Programmierung

Hallo,

wenn ich ein Win32 DLL Projekt erstelle, so kann ich in der DLL ja ganz normalen nativen code eingeben.

Nun gibt es in der Projekteinstellungen auch die Möglichkeit eine "CLR Unterstützung" mit anzubinden.

Nun habe ich meinem nativen Projekt mit CLR Unterstützung eine WindowsForm hinzugefügt.

Kompilieren geht wunderbar. Ich kann die DLL auch ganz normal native laden (mit LoadLibrary).

Aber wenn ich nun Zugriff auf den .NET teil haben will und Assambly.Load mache, dann bekomme ich eine Exception:

Die Datei oder Assembly C:\\Users\\JAN\\Documents\\Visual Studio 2005\\Projects\\TestMixCall\\TestMixCall\\bin\\Debug\\MixedDll.dll oder eine Abhängigkeit davon wurde nicht gefunden. Der angegebene Assemblyname oder die Codebasis ist ungültig. (Ausnahme von HRESULT: 0x80131047).


Kann ich ich solche gemischte dlls nun Grundsätzlich nicht als Assembly laden? Oder habe ich einfach einen Fehler gemacht?

Denn als "Verweis" kann ich die gemischte dll einbindn.


Gruß Stu

Thema: Backgroundworker - extrem hoher CPU bedarf - solved
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

thread-priorität?

Thema: Control.Invoke verschluckt?
Am im Forum: GUI: Windows-Forms

Ich habe mal eben gegoogelt und eine Race Condition wäre denn sowas?


bool bTrigger = false;
void DoIt()
{
    while(bTrigger )
        Application.DoEvents();
      bTrigger = true;
     //sicherer code
     bTrigger = false;
}

Und wie ist das eigentlich mit dem "lock (this)" in Timer-Tick-Funktionen?
Ist jeder Timer-Tick in einem eigenen Thread? Denn wenn dann der nächste Tick kommt, während der vorherige Tick noch ausgeführt wird, könnte sowas sich dann aufschaukeln zu einem Deadlock?

Thema: Zedgraph Dragging Points und Datenbank
Am im Forum: Grafik und Sound

Ich glaube punkte editieren kannst du mit jeder "IPointList".

Soweit ich weiß ist das Codeschnipsel aus der Wiki auch für einer vorgänger version.

Bei dem neuen ZedGraph 5.xxx kannst du das editieren von punkte einfach per eigenschaft ein- und ausschalten.

Zum editieren der Punkte musst du aber auch eine Taste einstellen , bzw die vordefinierte Taste drücken.

Thema: Control.Invoke verschluckt?
Am im Forum: GUI: Windows-Forms

Ja genau, Control.Invoke.

Ja ich hab es schon fast vermutet das es dadran nicht liegen kann, bzw die funktion immer aufgerufen wird.

Bin in letzer Zeit entwas Paranoid in sachen Threadsicherheit, bzw mit diesen Asynchronen Invokes.

Denn mein Programm läuft auf einen schnellen Rechner sehr gut, nur auf einem langsameren kommen Fehler!

Thema: Control.Invoke verschluckt?
Am im Forum: GUI: Windows-Forms

Ja ist nicht so einfach, der der Fehler (wenn er kommt) erst noch 4 stunden oder so kommt. Muss ich so mal schauen.

Thema: Control.Invoke verschluckt?
Am im Forum: GUI: Windows-Forms

Nein, kann ich auch leider nicht. Der Rechner ist beim Kunden. Und bei mir kommt der Fehler nicht.

Thema: Control.Invoke verschluckt?
Am im Forum: GUI: Windows-Forms

Hallo,

ich stehe gerade vor einem, mir seltsam vorkommenden, Problem.

Ich habe ein event welches aufgerufen wird und 2 Funktion via Invoke aufruft:


void OnInjected()
{
            if (!bIsCollectiong)
            {
                Invoke(new DelegateCallVoidVoidFunktion(HideInjectedWaitingForm));
                Invoke(new DelegateCallBoolVoidFunktion(StartAquisition));
            }
}

Und so wie es aussieht, wird der erste Aufruf (HideInjectedWaitingForm) nicht ausgeführt.

Kann es sein, das ein "Invoke" aus irgentwelchesn Gründen nicht aufgerufen wird? z.B. wenn der Rechner echt lahm ist, und die CPU auslastung hoch geht?

Gruß Stu

Thema: "Programme und Funktionen" registrieren
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

ah so geht das also, vielen dank.

Thema: "Programme und Funktionen" registrieren
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

als Installer hätt ich hier auch noch InstallShield. Ich brauche eine installation mit viel extra sachen. InstallShieldX kotzt mich aber dermaßen an, das ich mein Setup selbst machen will.

Aber dazu muss ich wissen, wie ich das Programm in die Systemsteuerung unter "programme" ´bekomme.

Thema: "Programme und Funktionen" registrieren
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo,

hat jemand eine Ahnung, wie ich mein Programm in der Systemsteuerung unter "Programme und Funktionen" registrieren kann, so wie es Installer tun?


Gruß Stu

Thema: DataGridViewComboBoxColumn?
Am im Forum: GUI: Windows-Forms

gibts beim DGV nicht auch ComboBox styles wie "DropDownList" ?

Denn wenn das ding dann auf Text gestellt wäre, würde man alles schreiben können.