<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Koordinaten aller Punkte einer gemalten Linie speichern und ausgeben]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe ein Zeichenprogramm geschrieben, welches auch schon relativ gut funktioniert. Jetzt würde ich gerne, wenn ich eine Linie ziehe die Koordinaten aller Punkte, welche sich auf dieser Linie befinden speichern und dann natürlich auch wiederverwenden.<br />
Meine Funktion onmousemove schaut so aus:</p>
<pre><code>void CIBOV02Dlg::OnMouseMove(UINT nFlags, CPoint point, T3DPoint* Points[1000]) 
{

	if (m_bOnLeftMouseButton &amp;&amp; (IsOnInput(point.x, point.y)))
	{
		CClientDC dc(this);
		dc.SetPixel(point.x, point.y, RGB(0,0,0));

		dc.MoveTo(m_iStartX, m_iStartY);
		dc.LineTo(point.x, point.y);

		m_iStartX = point.x;
		m_iStartY = point.y;

		Points[lp]-&gt;x = point.x;
		Points[lp]-&gt;y = point.y;
	}
...
</code></pre>
<p>Ich müsste doch in diese Funktion einen Zähler intergrieren können, welcher bei jeder Veränderung der Mausposition diese speichert (Array?)und eine Laufvariable um 1 erhöht bis ich wieder den Mausknopf loslasse...</p>
<p>:schland:</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/152675/koordinaten-aller-punkte-einer-gemalten-linie-speichern-und-ausgeben</link><generator>RSS for Node</generator><lastBuildDate>Fri, 24 Jul 2026 07:33:23 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/152675.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 08 Jul 2006 14:30:57 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Koordinaten aller Punkte einer gemalten Linie speichern und ausgeben on Sat, 08 Jul 2006 14:30:57 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe ein Zeichenprogramm geschrieben, welches auch schon relativ gut funktioniert. Jetzt würde ich gerne, wenn ich eine Linie ziehe die Koordinaten aller Punkte, welche sich auf dieser Linie befinden speichern und dann natürlich auch wiederverwenden.<br />
Meine Funktion onmousemove schaut so aus:</p>
<pre><code>void CIBOV02Dlg::OnMouseMove(UINT nFlags, CPoint point, T3DPoint* Points[1000]) 
{

	if (m_bOnLeftMouseButton &amp;&amp; (IsOnInput(point.x, point.y)))
	{
		CClientDC dc(this);
		dc.SetPixel(point.x, point.y, RGB(0,0,0));

		dc.MoveTo(m_iStartX, m_iStartY);
		dc.LineTo(point.x, point.y);

		m_iStartX = point.x;
		m_iStartY = point.y;

		Points[lp]-&gt;x = point.x;
		Points[lp]-&gt;y = point.y;
	}
...
</code></pre>
<p>Ich müsste doch in diese Funktion einen Zähler intergrieren können, welcher bei jeder Veränderung der Mausposition diese speichert (Array?)und eine Laufvariable um 1 erhöht bis ich wieder den Mausknopf loslasse...</p>
<p>:schland:</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1093942</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1093942</guid><dc:creator><![CDATA[Elchsfell]]></dc:creator><pubDate>Sat, 08 Jul 2006 14:30:57 GMT</pubDate></item><item><title><![CDATA[Reply to Koordinaten aller Punkte einer gemalten Linie speichern und ausgeben on Sat, 08 Jul 2006 14:58:53 GMT]]></title><description><![CDATA[<p>Suchst du CArray? CList? Schau mal in der MSDN, das sind dynamische Arrays die ihre Grösse automatisch anpassen.</p>
<p>übrigens, wieso verwendest du in deinem Code ein SetPixel, wenn du danach sowieso ein LineTo zu diesem Punkt machst?</p>
<p>Und dein Code ist auf einer Scrollview gar nicht zu empfehlen, da er mit device Koordinaten funktioniert und nicht mit logischen.<br />
Ach was soll ich setz gleich nen Code dazu:</p>
<pre><code class="language-cpp">// ...View.h
class C...View : public CView
{
    // ...
    CArray&lt;CPoint, CPoint&gt; m_PointArray;
    // ...
}
</code></pre>
<pre><code class="language-cpp">// ...View.cpp
void CIBOV02Dlg::OnMouseMove(UINT nFlags, CPoint point, T3DPoint* Points[1000])
{
    if(m_bOnLeftMouseButton &amp;&amp; (IsOnInput(point.x, point.y)))
    {
        CClientDC dc(this);
        OnPrepareDC(&amp;dc);            // dc preparieren
        dc.DPtoLP(&amp;point);           // point in logische Koordinaten verwandeln

        CPoint pt = CPoint(0, 0);    // Irgend ein Standard Startpunkt, wenn es noch keinen Punkt im Array hat.
        // Letzten Punkt im Array holen, wenn was drin ist.
        if(m_PointArray.GetCount() &gt; 0)
        { pt = m_PointArray.GetAt(m_PointArray.GetUpperBound()); }

        dc.MoveTo(pt);
        dc.LineTo(point);

        m_PointArray.Add(point);     // Punkt dazufügen.
    }
}
</code></pre>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1093964</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1093964</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Sat, 08 Jul 2006 14:58:53 GMT</pubDate></item></channel></rss>