<?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[img rotate]]></title><description><![CDATA[<p>hi,</p>
<p>wie kann ich das rotate noch effizient für unterschiedliche array groessen implementieren?<br />
zb.: #define X 3<br />
#define Y 4<br />
oder<br />
#define X 4<br />
#define Y 3</p>
<pre><code class="language-cpp">#define X 4
#define Y 4

void swap(char &amp;a, char &amp;b)
{
	char tmp = a;

	a = b;
	b = tmp;
}

void rotateimg(char str[X][Y], int row, int col, bool left)
{
  // transpose
  for(int r = 0; r &lt; row; r++)
  {
    for(int c = r; c &lt; col; c++)
    {  
      swap(str[r][c], str[c][r]);
    }
  }

  if(left)
  {
    // reverse elements on row order
    for(int r = 0; r &lt; row; r++)
    {
      for(int c = 0; c &lt; col/2; c++)
      {
        swap(str[c][r], str[col-c-1][r]);
      }
    }
  }
  else
  {
    // reverse elements on row order
    for(int r = 0; r &lt; row; r++)
    {
      for(int c = 0; c &lt; col/2; c++)
      {
        swap(str[r][c], str[r][col-c-1]);
      }
    }
  }
}

int main()
{
   char img[X][Y] = {{'a','b','c','d'}, {'e','f','g','h'}, {'i','j','k','l'}, {'m','n','o','p'}};
   rotateimg(img, X, Y, true);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/299798/img-rotate</link><generator>RSS for Node</generator><lastBuildDate>Thu, 13 Aug 2026 01:47:35 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/299798.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 18 Feb 2012 18:43:32 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to img rotate on Sat, 18 Feb 2012 18:43:32 GMT]]></title><description><![CDATA[<p>hi,</p>
<p>wie kann ich das rotate noch effizient für unterschiedliche array groessen implementieren?<br />
zb.: #define X 3<br />
#define Y 4<br />
oder<br />
#define X 4<br />
#define Y 3</p>
<pre><code class="language-cpp">#define X 4
#define Y 4

void swap(char &amp;a, char &amp;b)
{
	char tmp = a;

	a = b;
	b = tmp;
}

void rotateimg(char str[X][Y], int row, int col, bool left)
{
  // transpose
  for(int r = 0; r &lt; row; r++)
  {
    for(int c = r; c &lt; col; c++)
    {  
      swap(str[r][c], str[c][r]);
    }
  }

  if(left)
  {
    // reverse elements on row order
    for(int r = 0; r &lt; row; r++)
    {
      for(int c = 0; c &lt; col/2; c++)
      {
        swap(str[c][r], str[col-c-1][r]);
      }
    }
  }
  else
  {
    // reverse elements on row order
    for(int r = 0; r &lt; row; r++)
    {
      for(int c = 0; c &lt; col/2; c++)
      {
        swap(str[r][c], str[r][col-c-1]);
      }
    }
  }
}

int main()
{
   char img[X][Y] = {{'a','b','c','d'}, {'e','f','g','h'}, {'i','j','k','l'}, {'m','n','o','p'}};
   rotateimg(img, X, Y, true);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2182761</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2182761</guid><dc:creator><![CDATA[wolfit]]></dc:creator><pubDate>Sat, 18 Feb 2012 18:43:32 GMT</pubDate></item><item><title><![CDATA[Reply to img rotate on Sat, 18 Feb 2012 19:50:35 GMT]]></title><description><![CDATA[<p>Du postest im C++-Forum. Schonmal was von Templates gehört?</p>
<pre><code class="language-cpp">template &lt;size_t X, size_t Y&gt;
void rotateimg(char (&amp;str)[X][Y], int row, int col, bool left)
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2182773</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2182773</guid><dc:creator><![CDATA[templit]]></dc:creator><pubDate>Sat, 18 Feb 2012 19:50:35 GMT</pubDate></item><item><title><![CDATA[Reply to img rotate on Sat, 18 Feb 2012 23:57:32 GMT]]></title><description><![CDATA[<p>ja schon...</p>
<p>nur hier brauche ich trotzdem eine define oder eine const int deklaration:</p>
<pre><code class="language-cpp">char img[X][Y] = {{'a','b','c','d'}, {'e','f','g','h'}, {'i','j','k','l'}, {'m','n','o','p'}};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2182845</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2182845</guid><dc:creator><![CDATA[wolfit]]></dc:creator><pubDate>Sat, 18 Feb 2012 23:57:32 GMT</pubDate></item><item><title><![CDATA[Reply to img rotate on Sun, 19 Feb 2012 00:34:13 GMT]]></title><description><![CDATA[<p>Wieso braucht deine Funktion ein row und col Parameter wenn du doch X und Y hast oder noch besser warum machst du deine Funktion von X und Y abhängig wenn du doch row und col hast?</p>
<p>Also Funktionsdefinition ändern in</p>
<pre><code class="language-cpp">void rotateimg(char** str, int row, int col, bool left)
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2182849</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2182849</guid><dc:creator><![CDATA[Koppler]]></dc:creator><pubDate>Sun, 19 Feb 2012 00:34:13 GMT</pubDate></item><item><title><![CDATA[Reply to img rotate on Sun, 19 Feb 2012 17:32:48 GMT]]></title><description><![CDATA[<p>Koppler schrieb:</p>
<blockquote>
<p>Wieso braucht deine Funktion ein row und col Parameter wenn du doch X und Y hast oder noch besser warum machst du deine Funktion von X und Y abhängig wenn du doch row und col hast?</p>
<p>Also Funktionsdefinition ändern in</p>
<pre><code class="language-cpp">void rotateimg(char** str, int row, int col, bool left)
</code></pre>
</blockquote>
<p>wie übergebe ich das char img[X][Y] an die funktion? void rotateimg(char** str ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2183107</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2183107</guid><dc:creator><![CDATA[wolfit]]></dc:creator><pubDate>Sun, 19 Feb 2012 17:32:48 GMT</pubDate></item><item><title><![CDATA[Reply to img rotate on Sun, 19 Feb 2012 17:53:59 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">void rotateimg(char (*p)[Y]) {}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2183117</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2183117</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Sun, 19 Feb 2012 17:53:59 GMT</pubDate></item><item><title><![CDATA[Reply to img rotate on Sun, 19 Feb 2012 18:06:14 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">void rotateimg(char* img, size_t columns, size_t rows, ...)
{
    size_t x = ...;
    size_t y = ...;
    char pixel = img[y * columns + x];
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2183122</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2183122</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Sun, 19 Feb 2012 18:06:14 GMT</pubDate></item></channel></rss>