<?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[Frage zu Rundungsfehler [gelöst]]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich habe folgende Rechnung:</p>
<pre><code>double dU = dPhi / (2.*M_PI);
</code></pre>
<p>Wenn ich dann mein Programm durchlafen lasse bekomme ich einen Kleinen Fehler in meinem Bild.</p>
<p>Wenn ich aber M_PI durch 3.2 ersetze dann hab ich ein Perfektes Bild.</p>
<p>Das kann doch eigentlich nur ein Rundungsfehler sein oder??</p>
<p>Und ich wollte fragen wie ich diesen Fehler behebenkann und mir M_PI trotzdem erhalten bleibt.</p>
<p>Danke</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/212990/frage-zu-rundungsfehler-gelöst</link><generator>RSS for Node</generator><lastBuildDate>Wed, 14 Oct 2026 13:19:26 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/212990.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 13 May 2008 07:17:44 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Frage zu Rundungsfehler [gelöst] on Wed, 14 May 2008 09:25:01 GMT]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich habe folgende Rechnung:</p>
<pre><code>double dU = dPhi / (2.*M_PI);
</code></pre>
<p>Wenn ich dann mein Programm durchlafen lasse bekomme ich einen Kleinen Fehler in meinem Bild.</p>
<p>Wenn ich aber M_PI durch 3.2 ersetze dann hab ich ein Perfektes Bild.</p>
<p>Das kann doch eigentlich nur ein Rundungsfehler sein oder??</p>
<p>Und ich wollte fragen wie ich diesen Fehler behebenkann und mir M_PI trotzdem erhalten bleibt.</p>
<p>Danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1507879</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1507879</guid><dc:creator><![CDATA[GT]]></dc:creator><pubDate>Wed, 14 May 2008 09:25:01 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Rundungsfehler [gelöst] on Tue, 13 May 2008 07:28:38 GMT]]></title><description><![CDATA[<p>Moin,<br />
eindeutig ein Rundungsfehler, denn Pi rundet sich zu 3.1 !</p>
<p>Ansonsten ist die Frage schwer zu beantworten , da wir dein &quot;Bild&quot; nicht sehen können und auch nicht erahnen können, was du damit meinst und wie es sich berechnet. Ein paar mehr Infos wären also schon noch nötig.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1507884</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1507884</guid><dc:creator><![CDATA[MiP]]></dc:creator><pubDate>Tue, 13 May 2008 07:28:38 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Rundungsfehler [gelöst] on Tue, 13 May 2008 08:26:29 GMT]]></title><description><![CDATA[<p>So habs wo hochgeladen.</p>
<p><a href="http://saiyamans-world.pytalhost.de/Rundungsfehler.htm" rel="nofollow">http://saiyamans-world.pytalhost.de/Rundungsfehler.htm</a></p>
<p>warum steht da dauernt googel</p>
<p>muss pytalhost heisen</p>
<p>das 1te ist das ohne fehler.</p>
<p>das 2te ist das eingangsbild.</p>
<p>und das dritte ist das mit fehler.</p>
<p>Hoffe das Hilft bei der Lösung.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1507897</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1507897</guid><dc:creator><![CDATA[GT]]></dc:creator><pubDate>Tue, 13 May 2008 08:26:29 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Rundungsfehler [gelöst] on Tue, 13 May 2008 08:38:46 GMT]]></title><description><![CDATA[<p>mh, versuch mal das 2. duch 2.00000000 oder so zu ersetzten oder durch static_cast&lt;double&gt;(2.0).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1507913</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1507913</guid><dc:creator><![CDATA[Gugi]]></dc:creator><pubDate>Tue, 13 May 2008 08:38:46 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Rundungsfehler [gelöst] on Tue, 13 May 2008 08:49:42 GMT]]></title><description><![CDATA[<p>Das bringt leider nix.</p>
<p>Danke für die mühe.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1507920</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1507920</guid><dc:creator><![CDATA[GT]]></dc:creator><pubDate>Tue, 13 May 2008 08:49:42 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Rundungsfehler [gelöst] on Tue, 13 May 2008 08:59:45 GMT]]></title><description><![CDATA[<p>Jetzt noch ein bischen mehr Code zeigen!<br />
Vermutlich steht der oben gezeigte Code innerhalb einer Schleife. Wie ist das Abbruchskriterium? Wie berechnet sich &quot;dPhi&quot; ?<br />
Muss man dir alles aus der Nase ziehen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1507925</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1507925</guid><dc:creator><![CDATA[MiP]]></dc:creator><pubDate>Tue, 13 May 2008 08:59:45 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Rundungsfehler [gelöst] on Tue, 13 May 2008 09:01:53 GMT]]></title><description><![CDATA[<p>Hättest ja sagen können das du mehr code sehen willst...</p>
<pre><code>for (int y = 0; y &lt; nHeightDst; y++)
    {
      for (int x = 0; x &lt; nWidthDst; x++)
      {
        double dSx = x - dCenterX;

        double dSy = dCenterY - y;

        double dRadius = sqrt(double(dSx*dSx + dSy*dSy));

        double dPhi = atan2(dSy, dSx);

        if (dPhi&lt;0)
        {
          dPhi+= 2.*M_PI;
        }

        if (dPhi&gt;2.*M_PI)
        {
          dPhi-= 2.*M_PI;
        }

        double dU = dPhi / (2.*3.2);

        double dV = dRadius / maxR;

        int i = y*nWidthDst + x;

        if(dRadius &gt; maxR)
        {
          pxMap[i] = -1;

          pyMap[i] = -1;
        }

        pxMap[i] = dU * srcSize.width;

        pyMap[i] = dV * srcSize.height;
      }
    }
</code></pre>
<p>Bitteschön</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1507927</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1507927</guid><dc:creator><![CDATA[GT]]></dc:creator><pubDate>Tue, 13 May 2008 09:01:53 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Rundungsfehler [gelöst] on Tue, 13 May 2008 09:02:43 GMT]]></title><description><![CDATA[<p>Gugi schrieb:</p>
<blockquote>
<p>mh, versuch mal das 2. duch 2.00000000 oder so zu ersetzten oder durch static_cast&lt;double&gt;(2.0).</p>
</blockquote>
<p>Aber nur bei Vollmond!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1507928</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1507928</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Tue, 13 May 2008 09:02:43 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Rundungsfehler [gelöst] on Tue, 13 May 2008 09:05:17 GMT]]></title><description><![CDATA[<p>GT schrieb:</p>
<blockquote>
<p>Das bringt leider nix.</p>
<p>Danke für die mühe.</p>
</blockquote>
<p>Hast Du mal etwas mehr Code? Mit Der Schleife, die zur Generierung durchlaufen wird z.B.?<br />
Wie ist M_PI genau definiert?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1507929</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1507929</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Tue, 13 May 2008 09:05:17 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Rundungsfehler [gelöst] on Tue, 13 May 2008 09:04:59 GMT]]></title><description><![CDATA[<p>Ich hab die math.h includet wo M_PI ja drin ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1507930</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1507930</guid><dc:creator><![CDATA[GT]]></dc:creator><pubDate>Tue, 13 May 2008 09:04:59 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Rundungsfehler [gelöst] on Tue, 13 May 2008 09:09:17 GMT]]></title><description><![CDATA[<p>GT schrieb:</p>
<blockquote>
<p>Ich hab die math.h includet wo M_PI ja drin ist.</p>
</blockquote>
<p>Hmm, Standard ist das aber nicht.</p>
<p>ich definiere Pi immer so:</p>
<pre><code class="language-cpp">const double PI = acos(-1.0);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1507935</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1507935</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Tue, 13 May 2008 09:09:17 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Rundungsfehler [gelöst] on Tue, 13 May 2008 09:16:41 GMT]]></title><description><![CDATA[<p>Das ja auch nicht der ganze Code... wäre bisschen viel.</p>
<p>das kann ich ja mal Probieren.</p>
<p>Danke</p>
<p>Edit:</p>
<p>Ohne Veränderung.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1507937</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1507937</guid><dc:creator><![CDATA[GT]]></dc:creator><pubDate>Tue, 13 May 2008 09:16:41 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Rundungsfehler [gelöst] on Tue, 13 May 2008 10:13:54 GMT]]></title><description><![CDATA[<p>Dein Problem liegt vermutlich woanders - das untere Bild sieht für mich auf jeden fall (bis auf den &quot;Spalt&quot;) &quot;richtiger&quot; aus als das obere. Die Winkel passen nämlich dort alle schön, was man vom oberen Bild nicht sagen kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1507981</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1507981</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Tue, 13 May 2008 10:13:54 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Rundungsfehler [gelöst] on Tue, 13 May 2008 11:13:15 GMT]]></title><description><![CDATA[<p>Dein Code</p>
<pre><code class="language-cpp">if(dRadius &gt; maxR)
{
  pxMap[i] = -1;
  pyMap[i] = -1;
}
pxMap[i] = dU * srcSize.width;
pyMap[i] = dV * srcSize.height;
</code></pre>
<p>ist wohl so schon mal richtiger:</p>
<pre><code class="language-cpp">if(dRadius &gt; maxR)
{
  pxMap[i] = -1;
  pyMap[i] = -1;
}
else{
  pxMap[i] = dU * srcSize.width;
  pyMap[i] = dV * srcSize.height;
}
</code></pre>
<p>Sollte aber dein Problem nicht lösen.<br />
Ansonsten merk dir doch mal eine fehlerhafte Pixelposition im Bild. Deine Schleifen iterieren ja durch dein Zielbild, kannst also beim entsprechenden x,y mit dem Debuger nachschauen, was an der Stelle passiert.<br />
Aber eigentlich bin ich auch der Meinung, dass das Problem nicht in dem Codeteil steckt, den wir hier von dir zu sehen bekommen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1508024</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1508024</guid><dc:creator><![CDATA[MiP]]></dc:creator><pubDate>Tue, 13 May 2008 11:13:15 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Rundungsfehler [gelöst] on Tue, 13 May 2008 16:24:15 GMT]]></title><description><![CDATA[<p>p.S.: mit &quot;woanders&quot; meine ich nicht &quot;in einem Codeteil den wir hier nicht sehen&quot;, sondern &quot;nicht bei der Winkelberechnung&quot;.<br />
Sieht eher so aus als ob wo eine &quot;liegt der Punkt noch im Source-Bild&quot; Abfrage drinnen wäre die mit einem Falschen Limit (Schwellenwert) arbeitet, oder wo man ggf. die Koordinaten clampen müsste.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1508278</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1508278</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Tue, 13 May 2008 16:24:15 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Rundungsfehler [gelöst] on Wed, 14 May 2008 09:26:54 GMT]]></title><description><![CDATA[<p>Also bei mir schliesst sich der Kreis!<br />
Habe an den eigentlichen Berechnungen nichts geändert -&gt; Dein Code ist richtig, zumindest der Teil, den wir sehen.</p>
<pre><code class="language-cpp">double M_PI = acos(-1);

    MFFTiff source(&quot;bild2.tif&quot;);

    unsigned char *ucS  = source.read();

    int nHeightDst = 600;
    int nWidthDst = 600;
    int dCenterX = nWidthDst/2;
    int dCenterY = nHeightDst/2;
    int maxR = 300;
    unsigned char *ucT = new unsigned char[nWidthDst*nHeightDst*3];

    for (int y = 0; y &lt; nHeightDst; y++){
      for (int x = 0; x &lt; nWidthDst; x++){
        double dSx = x - dCenterX;
        double dSy = dCenterY - y;
        double dRadius = sqrt(double(dSx*dSx + dSy*dSy));
        double dPhi = atan2(dSy, dSx);

        if (dPhi&lt;0){
          dPhi+= 2.*M_PI;
        }

        if (dPhi&gt;2.*M_PI){
          dPhi-= 2.*M_PI;
        }

        //double dU = dPhi / (2.*3.2);// Edit
        double dU = dPhi / (2.*M_PI);// Edit
        double dV = dRadius / maxR;
        int i = (y*nWidthDst + x)*3;

        if(dRadius &gt; maxR){

        }
	else{
	   //int ix = dU * (source.width()-1);// Edit
	   //int iy = dV * (source.height()-1);// Edit
           int ix = dU * source.width();// Edit
	   int iy = dV * source.height();// Edit

	   ucT[i] = ucS[(ix+iy*source.width())*3];
	   ucT[i+1] = ucS[(ix+iy*source.width())*3+1];
	   ucT[i+2] = ucS[(ix+iy*source.width())*3+2];
	 }
      }
    }

    MFFTiff target(&quot;result.tif&quot;,nWidthDst,nHeightDst,MRGB);
    target.write(ucT,nWidthDst*nHeightDst*3);
</code></pre>
<p>Edit: Hab ein paar Fehler mit übernommen. Aber auch nach Korrektur schliesst sich der Kreis.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1508635</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1508635</guid><dc:creator><![CDATA[MiP]]></dc:creator><pubDate>Wed, 14 May 2008 09:26:54 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Rundungsfehler [gelöst] on Wed, 14 May 2008 09:24:37 GMT]]></title><description><![CDATA[<p>Nett von dir das du es nochmal ausgetestet hast.</p>
<p>Den Fehler hab ich jetzt gefunden:</p>
<p>Ist 100%tig ein Rundungsfehler der dadurch koriegiert werden kann.</p>
<pre><code>else
        {
          pxMap[i] = dU * srcSize.width - 1;

          if(pxMap[i] &lt; 0)
          {
            pxMap[i] = 0;
          }

          pyMap[i] = dV * srcSize.height;
        }
</code></pre>
<p>Aber damit du auch mal den Rest vom Code siehst... ist nur ein File Dialog.. und Definition für einige Variablen die ich dann für eine Funktion brauche. poste ich dir mal die Funktion.</p>
<pre><code>ippiRemap_8u_C4R(pSrc, srcSize, srcStep, srcRoi, pxMap, xMapStride, pyMap, yMapStride, pDst, dstStep, dstRoiSize, nInterpolation);
</code></pre>
<p>Weis nicht obs dir was bringt aber Was am Code jetzt noch fehlen Würde wäre die Definition der Variablen für dieses Funktion und der FileDialog.</p>
<p>Also vielen Dank an alle und dir MiP ein extra dank dafür das du dich so reihngehängt hast.</p>
<p>Mit was erstellst du eigentlich den Kreis??</p>
<p>Also ich ja mit der ippiRemap weil dein MFFTiff sagt mir reihn garnichts.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1508675</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1508675</guid><dc:creator><![CDATA[GT]]></dc:creator><pubDate>Wed, 14 May 2008 09:24:37 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Rundungsfehler [gelöst] on Wed, 14 May 2008 09:36:03 GMT]]></title><description><![CDATA[<p>MFFTiff ist eine eigene Klasse zum Tiff lesen/schreiben.<br />
Aber den Rundungsfehler sehe ich immer noch nicht.<br />
Aber egal, schliesslich hast du ja die Frage gestellt und nicht ich.<br />
Gruss,<br />
MiP</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1508685</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1508685</guid><dc:creator><![CDATA[MiP]]></dc:creator><pubDate>Wed, 14 May 2008 09:36:03 GMT</pubDate></item></channel></rss>