<?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[Sinuskurve zeichnen mit TImage]]></title><description><![CDATA[<p>Hallo liebe Gemeinde,</p>
<p>ich bin nun hingegangen und habe eine TImage - Komponente angelegt.<br />
Dann einen Button hinzugefügt.</p>
<p>Beim Buttonklick soll er in das TImage die Kurve zeichnen (Sinus oder Cosinus).<br />
Leider sieht es sehr eckig aus.</p>
<p>Der Quellcode für den Buttonklick schaut folgendermaßen aus:</p>
<pre><code class="language-cpp">void __fastcall TForm1::Button1Click(TObject *Sender)
{
		// Mauszeiger auf Anfang setzen
		Image1-&gt;Canvas-&gt;MoveTo(0,220);
		double y = 0;

		for (double x = 0 ; x&lt;640 ; x++ )
		{
			y = Sin(x);
			y = ((y*180)/M_PI)+220;
			Image1-&gt;Canvas-&gt;LineTo(x,y);
		}
}
</code></pre>
<pre><code class="language-cpp">x&lt;640
</code></pre>
<p>-&gt; Weil die Breite der Image - Komponente 640 Pixel beträgt.</p>
<pre><code class="language-cpp">y = Sin(x)
</code></pre>
<p>-&gt; y - Wert - Berechnung des x - Wertes mittels Sinus</p>
<pre><code class="language-cpp">y = ((y*180)/M_PI)+220;
</code></pre>
<p>-&gt; Bogenmaß in Gradmaß umrechnen. + 220, weil die Image - Komponente 440 Pixel hoch ist und 0;220 der Anfang ist.</p>
<pre><code class="language-cpp">Image1-&gt;Canvas-&gt;LineTo(x,y);
</code></pre>
<p>-&gt; Er zieht immer weiter Linien zu den neu - errechneten Punkten.</p>
<p>Würde halt nun gern so machen, dass es runder verläuft.<br />
Sprich, dass er bei 2*PI den Wert 0 hat und bei PI den Wert 0 usw. Bei 1,5PI den Wert 1.<br />
Also eine gezogene Kurve.<br />
Bei der Suche habe ich leider unter VCL nichts zu Sinus gefunden.</p>
<p>Gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/164712/sinuskurve-zeichnen-mit-timage</link><generator>RSS for Node</generator><lastBuildDate>Wed, 12 Aug 2026 12:18:05 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/164712.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 11 Nov 2006 19:12:32 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Sinuskurve zeichnen mit TImage on Sat, 11 Nov 2006 19:13:43 GMT]]></title><description><![CDATA[<p>Hallo liebe Gemeinde,</p>
<p>ich bin nun hingegangen und habe eine TImage - Komponente angelegt.<br />
Dann einen Button hinzugefügt.</p>
<p>Beim Buttonklick soll er in das TImage die Kurve zeichnen (Sinus oder Cosinus).<br />
Leider sieht es sehr eckig aus.</p>
<p>Der Quellcode für den Buttonklick schaut folgendermaßen aus:</p>
<pre><code class="language-cpp">void __fastcall TForm1::Button1Click(TObject *Sender)
{
		// Mauszeiger auf Anfang setzen
		Image1-&gt;Canvas-&gt;MoveTo(0,220);
		double y = 0;

		for (double x = 0 ; x&lt;640 ; x++ )
		{
			y = Sin(x);
			y = ((y*180)/M_PI)+220;
			Image1-&gt;Canvas-&gt;LineTo(x,y);
		}
}
</code></pre>
<pre><code class="language-cpp">x&lt;640
</code></pre>
<p>-&gt; Weil die Breite der Image - Komponente 640 Pixel beträgt.</p>
<pre><code class="language-cpp">y = Sin(x)
</code></pre>
<p>-&gt; y - Wert - Berechnung des x - Wertes mittels Sinus</p>
<pre><code class="language-cpp">y = ((y*180)/M_PI)+220;
</code></pre>
<p>-&gt; Bogenmaß in Gradmaß umrechnen. + 220, weil die Image - Komponente 440 Pixel hoch ist und 0;220 der Anfang ist.</p>
<pre><code class="language-cpp">Image1-&gt;Canvas-&gt;LineTo(x,y);
</code></pre>
<p>-&gt; Er zieht immer weiter Linien zu den neu - errechneten Punkten.</p>
<p>Würde halt nun gern so machen, dass es runder verläuft.<br />
Sprich, dass er bei 2*PI den Wert 0 hat und bei PI den Wert 0 usw. Bei 1,5PI den Wert 1.<br />
Also eine gezogene Kurve.<br />
Bei der Suche habe ich leider unter VCL nichts zu Sinus gefunden.</p>
<p>Gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1172706</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1172706</guid><dc:creator><![CDATA[tH0RsT3n]]></dc:creator><pubDate>Sat, 11 Nov 2006 19:13:43 GMT</pubDate></item><item><title><![CDATA[Reply to Sinuskurve zeichnen mit TImage on Sat, 11 Nov 2006 19:56:01 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Die Zeichenoperation ist schon korrekt, nur eben sehr gestaucht. Das liegt daran, das du auf der X-Achse einen Pixel mit einer Längeneinheit gleichsetzt. Deshalb werden viel zu viele Schwingungen dargestellt.<br />
Ändere mal folgende Zeile, dann solltest du eine vernünftige Darstellung bekommen</p>
<pre><code class="language-cpp">#include &lt;cmath&gt;
...
y = std::sin(x / 10);
</code></pre>
<p>Desweiteren weiß ich nicht, wo du die Funktion Sin(...) herhast. Beim BCB5 gibts nur SinCos. Deshalb hab ich bei meinem Test die Funktion aus der STL benutzt.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1172725</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1172725</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Sat, 11 Nov 2006 19:56:01 GMT</pubDate></item><item><title><![CDATA[Reply to Sinuskurve zeichnen mit TImage on Sun, 12 Nov 2006 09:44:11 GMT]]></title><description><![CDATA[<p>akari schrieb:</p>
<blockquote>
<p>Hallo</p>
<p>Die Zeichenoperation ist schon korrekt, nur eben sehr gestaucht. Das liegt daran, das du auf der X-Achse einen Pixel mit einer Längeneinheit gleichsetzt. Deshalb werden viel zu viele Schwingungen dargestellt.<br />
Ändere mal folgende Zeile, dann solltest du eine vernünftige Darstellung bekommen</p>
<pre><code class="language-cpp">#include &lt;cmath&gt;
...
y = std::sin(x / 10);
</code></pre>
<p>Desweiteren weiß ich nicht, wo du die Funktion Sin(...) herhast. Beim BCB5 gibts nur SinCos. Deshalb hab ich bei meinem Test die Funktion aus der STL benutzt.</p>
<p>bis bald<br />
akari</p>
</blockquote>
<p>Danke, werde es gleich probieren.<br />
Die Funktion Sin habe ich aus der math.h beim Turbo C++ <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>Edit:<br />
Ja, danke es funktioniert. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>Gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1172867</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1172867</guid><dc:creator><![CDATA[tH0RsT3n]]></dc:creator><pubDate>Sun, 12 Nov 2006 09:44:11 GMT</pubDate></item></channel></rss>