<?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[Problem mit Canvas zeichnen]]></title><description><![CDATA[<p>Hallo.</p>
<p>Ich habe eine <strong>float</strong> Eingabemaske geschaffen, da ich hier ein Diagramm abmesse und die Koordinatenwerte eintrage um die Daten aufzunehmen und als Diagramm auf dem PC darstellen will. Werte sind im dreistelligen Bereich. Beispiele: 0.357, 123.009.</p>
<p>Zusätzlich habe ich einen Spinbutton, um bissle rein und rauszuzoomen, dabei bemerkte ich das sich mein Diagramm teilweise bös verformt. Habe paar Figuren reingezeichnet und diese bestättigten dies.</p>
<p>Ich verstehe auch das Problem im groben, nur wie löst man das Problem, das die Darstellung auch immer identisch bleibt. Kann doch nicht angehen das eine Form welche gespielt ist auf der einen Seite so und auf der anderen Seite so aussieht, weil es einen Pixel kürzer wird.</p>
<p>Gibts eine Funktion welche die Koorinaten transformiert?</p>
<p>Momentan arbeite ich so:</p>
<pre><code class="language-cpp">// mass ist der Zoomfaktor 1.0 bis 10.0 (float)
// rund: ist Konstante 0.5 für Rundung von double(float) zu integer
double fx1 = (StrToFloat(StringGrid-&gt;Cells[0][i]) * mass) + rund;
double fy1 = (StrToFloat(StringGrid-&gt;Cells[1][i]) * mass) + rund;
double fx2 = (StrToFloat(StringGrid-&gt;Cells[2][i]) * mass) + rund;
double fy2 = (StrToFloat(StringGrid-&gt;Cells[3][i]) * mass) + rund;

// Ende muss +1 gemacht werden, siehe BCB Doku
Canvas-&gt;MoveTo(fx1, fy1+1);
Canvas-&gt;LineTo(fx2, fy2+1);
</code></pre>
<p>Würde mich über Tipps sehr freuen!!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/209676/problem-mit-canvas-zeichnen</link><generator>RSS for Node</generator><lastBuildDate>Thu, 20 Aug 2026 14:40:47 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/209676.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 02 Apr 2008 09:22:37 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Problem mit Canvas zeichnen on Wed, 02 Apr 2008 09:22:37 GMT]]></title><description><![CDATA[<p>Hallo.</p>
<p>Ich habe eine <strong>float</strong> Eingabemaske geschaffen, da ich hier ein Diagramm abmesse und die Koordinatenwerte eintrage um die Daten aufzunehmen und als Diagramm auf dem PC darstellen will. Werte sind im dreistelligen Bereich. Beispiele: 0.357, 123.009.</p>
<p>Zusätzlich habe ich einen Spinbutton, um bissle rein und rauszuzoomen, dabei bemerkte ich das sich mein Diagramm teilweise bös verformt. Habe paar Figuren reingezeichnet und diese bestättigten dies.</p>
<p>Ich verstehe auch das Problem im groben, nur wie löst man das Problem, das die Darstellung auch immer identisch bleibt. Kann doch nicht angehen das eine Form welche gespielt ist auf der einen Seite so und auf der anderen Seite so aussieht, weil es einen Pixel kürzer wird.</p>
<p>Gibts eine Funktion welche die Koorinaten transformiert?</p>
<p>Momentan arbeite ich so:</p>
<pre><code class="language-cpp">// mass ist der Zoomfaktor 1.0 bis 10.0 (float)
// rund: ist Konstante 0.5 für Rundung von double(float) zu integer
double fx1 = (StrToFloat(StringGrid-&gt;Cells[0][i]) * mass) + rund;
double fy1 = (StrToFloat(StringGrid-&gt;Cells[1][i]) * mass) + rund;
double fx2 = (StrToFloat(StringGrid-&gt;Cells[2][i]) * mass) + rund;
double fy2 = (StrToFloat(StringGrid-&gt;Cells[3][i]) * mass) + rund;

// Ende muss +1 gemacht werden, siehe BCB Doku
Canvas-&gt;MoveTo(fx1, fy1+1);
Canvas-&gt;LineTo(fx2, fy2+1);
</code></pre>
<p>Würde mich über Tipps sehr freuen!!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1485047</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1485047</guid><dc:creator><![CDATA[~Pal]]></dc:creator><pubDate>Wed, 02 Apr 2008 09:22:37 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Canvas zeichnen on Wed, 02 Apr 2008 14:01:34 GMT]]></title><description><![CDATA[<p>MoveTo etc. erwarten <em>int</em>, bei Übergabe von <em>float</em> werden die Nachkommastellen ignoriert.<br />
Ich bin mir nicht sicher, was du mit dem Addieren von <em>rund</em> bewirken willst.</p>
<p>Eine Funktion zum Transformieren der Koordinaten in Integer musst du dir selber schreiben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1485249</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1485249</guid><dc:creator><![CDATA[Jansen]]></dc:creator><pubDate>Wed, 02 Apr 2008 14:01:34 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Canvas zeichnen on Wed, 02 Apr 2008 14:37:50 GMT]]></title><description><![CDATA[<p>Damit bei der Umwandlung von Fließkomma zu Integer nicht einfach stur die Kommastelle abgeschnitten wird, wird mittels <em>rund</em> ein Wert wie 127.8, welcher bei Umwandlung einfach ein 127 würde... 127.8 + 0.5 = 128.3 und somit wird dann richtig gerundet 128 draus.</p>
<p>Genau mit dem Transformieren habe ich meine Probleme ich sitze jetzt schon Wochen dran und bekomme keine Lösung hin und habe dieses kleine Programm solang schon auf Eis. Würde dies aber nun gerne mal zuende bringen wollen. Darum meine Frage ja hier, ob wer hier helfen könnte wie man die Darstellung hinbekommen kann. Danke.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1485276</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1485276</guid><dc:creator><![CDATA[~Pal]]></dc:creator><pubDate>Wed, 02 Apr 2008 14:37:50 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Canvas zeichnen on Wed, 02 Apr 2008 15:20:16 GMT]]></title><description><![CDATA[<p>Vielleicht hilft dir ja das hier.<br />
<a href="http://www2.in.tu-clausthal.de/~hormann/teaching/ProSemSS07/Gehrmann-handout.pdf" rel="nofollow">http://www2.in.tu-clausthal.de/~hormann/teaching/ProSemSS07/Gehrmann-handout.pdf</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1485322</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1485322</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Wed, 02 Apr 2008 15:20:16 GMT</pubDate></item></channel></rss>