<?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[Rotieren in der Bildmitte]]></title><description><![CDATA[<p>Hi,</p>
<p>Mit dem <a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-119002-and-postdays-is-0-and-postorder-is-asc-and-start-is-0.html" rel="nofollow">Code</a> von Korbinian kann ich schon gut rotieren allerdings passiert das nicht in der Bildmitte. Wie kann ich das erweitern das er um die Bildmitte rotiert?</p>
<p>Hier nochmal der Code:</p>
<pre><code class="language-cpp">template &lt;typename T&gt;
void rotate(T* din, T* dout, unsigned sx, unsigned sy, double w)
{
    for (unsigned i = 0; i &lt; sy; ++i)
    {
        for (unsigned j = 0; j &lt; sx; ++j)
        {
            signed rx = (signed)((double)j*cos(w) - (double)i*sin(w));
            signed ry = (signed)((double)j*sin(w) + (double)i*cos(w));
            if (rx &lt; 0 || ry &lt; 0 || rx &gt;= sx || ry &gt;= sy)
                continue;
            dout[i*sx + j] = din[ry*sx + rx];
        }
    }
    return;
}
</code></pre>
<p>MFG<br />
willi</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/213515/rotieren-in-der-bildmitte</link><generator>RSS for Node</generator><lastBuildDate>Wed, 14 Oct 2026 06:26:25 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/213515.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 18 May 2008 19:44:24 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Rotieren in der Bildmitte on Sun, 18 May 2008 19:44:24 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>Mit dem <a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-119002-and-postdays-is-0-and-postorder-is-asc-and-start-is-0.html" rel="nofollow">Code</a> von Korbinian kann ich schon gut rotieren allerdings passiert das nicht in der Bildmitte. Wie kann ich das erweitern das er um die Bildmitte rotiert?</p>
<p>Hier nochmal der Code:</p>
<pre><code class="language-cpp">template &lt;typename T&gt;
void rotate(T* din, T* dout, unsigned sx, unsigned sy, double w)
{
    for (unsigned i = 0; i &lt; sy; ++i)
    {
        for (unsigned j = 0; j &lt; sx; ++j)
        {
            signed rx = (signed)((double)j*cos(w) - (double)i*sin(w));
            signed ry = (signed)((double)j*sin(w) + (double)i*cos(w));
            if (rx &lt; 0 || ry &lt; 0 || rx &gt;= sx || ry &gt;= sy)
                continue;
            dout[i*sx + j] = din[ry*sx + rx];
        }
    }
    return;
}
</code></pre>
<p>MFG<br />
willi</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1511800</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1511800</guid><dc:creator><![CDATA[willi1]]></dc:creator><pubDate>Sun, 18 May 2008 19:44:24 GMT</pubDate></item><item><title><![CDATA[Reply to Rotieren in der Bildmitte on Sun, 18 May 2008 20:41:51 GMT]]></title><description><![CDATA[<p>ich weiss jetzt nicht genau worum er bei dir dreht, aber sollte er un den punkt 0/0 des bildes drehen musst du vorher alle punkte verschieben. Willst du z.B. um den mittelpunkt drehen musst du das bild um bildbreite/2 und bildhöhe/2 nach obenlinks verschieben.</p>
<p>Generell muss der Punkt um den du drehen willst 0/0 sein. Nennt sich auch affine transformation. Also einfach den punkt um den du drehen willst nach 0/0 schieben, dann drehen und wieder zurück schieben.</p>
<p>Gruss</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1511850</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1511850</guid><dc:creator><![CDATA[dreher]]></dc:creator><pubDate>Sun, 18 May 2008 20:41:51 GMT</pubDate></item><item><title><![CDATA[Reply to Rotieren in der Bildmitte on Sun, 18 May 2008 21:02:27 GMT]]></title><description><![CDATA[<p>ja inmoment wird in Punkt P(0/0) gedreht.<br />
Allerdings kann ich das nicht ganz nachvollziehen wie das gehen soll. Denn wenn ich das Bild nach P(w*0.5/h*0.5) verschiebe dann ist doch ein Teil ausserhalb des Bildbereiches. Dabei entsteht ein Informationsverlust oder sehe ich da was falsch?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1511859</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1511859</guid><dc:creator><![CDATA[willi1]]></dc:creator><pubDate>Sun, 18 May 2008 21:02:27 GMT</pubDate></item></channel></rss>