{"id":1712,"date":"2015-01-23T17:04:57","date_gmt":"2015-01-23T15:04:57","guid":{"rendered":"http:\/\/wordpress.wvs-berlin.de\/?p=1712"},"modified":"2015-01-23T17:31:24","modified_gmt":"2015-01-23T15:31:24","slug":"23-1-2015","status":"publish","type":"post","link":"https:\/\/wordpress.wvs-berlin.de\/?p=1712","title":{"rendered":"23.1.2015"},"content":{"rendered":"<p>Morten, Johannes und Angelo sind da. Der Code wird perfektioniert:<\/p>\n<p>&nbsp;<\/p>\n<pre style=\"font-size: 0.7em;\">#include &lt;stdio.h&gt;\r\n#include &lt;stdlib.h&gt;\r\n#include &lt;assert.h&gt;\r\n#include &lt;SDL\/SDL.h&gt;\r\n\r\ntypedef struct _Color Color;\r\nstruct _Color \r\n{\r\n\u00a0\u00a0\u00a0 unsigned char r, g, b;\r\n};\r\n\r\ntypedef struct _Point Point;\r\nstruct _Point\r\n{\r\n\u00a0\u00a0\u00a0 int x, y;\r\n};\r\n\r\nSDL_Surface *screen;\r\n\r\nvoid\r\ndrawPixel(int x, int y, Color c)\r\n{\r\n\u00a0\u00a0\u00a0 *((Uint32*)((char*)screen-&gt;pixels + x*screen-&gt;format-&gt;BytesPerPixel + y*screen-&gt;pitch)) = SDL_MapRGB(screen-&gt;format, c.r, c.g, c.b);\r\n}\r\n\r\nvoid\r\ndrawLine(Point p1, Point p2, Color c)\r\n{\r\n\u00a0\u00a0\u00a0 int dx, dy;\r\n\u00a0\u00a0\u00a0 int incx, incy;\r\n\u00a0\u00a0\u00a0 float m;\r\n\u00a0\u00a0\u00a0 dx = p2.x - p1.x;\r\n\u00a0\u00a0\u00a0 dy = p2.y - p1.y;\r\n\u00a0\u00a0\u00a0 incx = dx&gt;0 ? 1 : -1;\r\n\u00a0\u00a0\u00a0 incy = dy&gt;0 ? 1 : -1;\r\n\u00a0\u00a0\u00a0 if(dx == 0){\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 int y;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 for(y = p1.y; y != p2.y; y += incy)\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 drawPixel(p1.x, y, c);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 return;\r\n\u00a0\u00a0\u00a0 }\r\n\r\n\u00a0\u00a0\u00a0 if(abs(dx)&gt;abs(dy)){\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 int x;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 float y;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 m = (float)dy\/(float)abs(dx);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 y = p1.y;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 for(x = p1.x; x != p2.x; x += incx){\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 drawPixel(x, y+0.5f, c);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 y += m;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 }\r\n\u00a0\u00a0\u00a0 }else{\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 int y;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 float x;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 m = (float)dx\/(float)abs(dy);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 x = p1.x;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 for(y = p1.y; y != p2.y; y += incy){\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 drawPixel(x+0.5f, y, c);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 x += m;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 }\r\n\u00a0\u00a0\u00a0 }\r\n}\r\n\r\nvoid\r\ndrawTriWire(Point p1, Point p2, Point p3, Color c)\r\n{\r\n\u00a0\u00a0\u00a0 drawLine(p1, p2, c);\r\n\u00a0\u00a0\u00a0 drawLine(p2, p3, c);\r\n\u00a0\u00a0\u00a0 drawLine(p3, p1, c);\r\n}\r\n\r\nvoid\r\ndrawHorizontalLine(int y, float x1f, float x2f, Color c) {\r\n\u00a0\u00a0\u00a0 int x1, x2, tmp;\r\n\u00a0\u00a0\u00a0 x1 = (x1f == (int)x1f) ? x1f : x1f+1;\r\n\u00a0\u00a0\u00a0 x2 = (x2f == (int)x2f) ? x2f : x2f+1;\r\n\u00a0\u00a0\u00a0 if(x1 &gt; x2){\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 tmp = x1;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 x1 = x2;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 x2 = tmp;\r\n\u00a0\u00a0\u00a0 }\r\n\u00a0\u00a0\u00a0 while(x1 &lt; x2)\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 drawPixel(x1++, y, c);\r\n}\r\n\r\nvoid\r\n\/\/~ sortPoints(Point **p) ident mit zeile drunter, for educational purpose only \r\nsortPoints(Point *p[])\r\n{\r\n#define SWAPPOINT(p,q) { \\\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 tmp = p;\u00a0\u00a0\u00a0\u00a0\u00a0 \\\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 p = q;\u00a0\u00a0\u00a0\u00a0 \\\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 q = tmp;\u00a0\u00a0\u00a0\u00a0\u00a0 \\\r\n\u00a0\u00a0\u00a0 }\r\n\u00a0\u00a0\u00a0 Point *tmp;\r\n\u00a0\u00a0\u00a0 if(p[0]-&gt;y &gt; p[1]-&gt;y) \r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 SWAPPOINT(p[0], p[1]);\r\n\u00a0\u00a0\u00a0 if(p[0]-&gt;y &gt; p[2]-&gt;y)\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 SWAPPOINT(p[0], p[2]);\r\n\u00a0\u00a0\u00a0 if(p[1]-&gt;y &gt; p[2]-&gt;y) \r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 SWAPPOINT(p[1], p[2]);\r\n#undef SWAPPOINT\r\n}\r\n\r\nvoid\r\ndrawTriFlat(Point p1, Point p2, Point p3, Color c)\r\n{\r\n\u00a0\u00a0\u00a0 float dx[3];\r\n\u00a0\u00a0\u00a0 int y;\r\n\u00a0\u00a0\u00a0 float x1, x2;\r\n\u00a0\u00a0\u00a0 Point *p[] = {&amp;p1, &amp;p2, &amp;p3};\r\n\u00a0\u00a0\u00a0 sortPoints(p);\r\n#define D(p,q) (q-&gt;y - p-&gt;y == 0 ? 0.0f : (float) (q-&gt;x - p-&gt;x) \/ (q-&gt;y - p-&gt;y))\r\n\u00a0\u00a0\u00a0 \/\/~ dx[0] = (float) (p[2]-&gt;x - p[0]-&gt;x) \/ (p[2]-&gt;y - p[0]-&gt;y);\r\n\u00a0\u00a0\u00a0 dx[0] = D(p[0], p[2]);\r\n\u00a0\u00a0\u00a0 dx[1] = D(p[0], p[1]);\r\n\u00a0\u00a0\u00a0 dx[2] = D(p[1], p[2]);\r\n#undef D\r\n\u00a0\u00a0\u00a0 y = p[0]-&gt;y;\r\n\u00a0\u00a0\u00a0 x1 = x2 = p[0]-&gt;x;\r\n\u00a0\u00a0\u00a0 while(y &lt; p[1]-&gt;y){\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 drawHorizontalLine(y, x1, x2, c);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 y++;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 x1 += dx[0];\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 x2 += dx[1];\r\n\u00a0\u00a0\u00a0 }\r\n\u00a0\u00a0\u00a0 x2 = p[1]-&gt;x;\r\n\u00a0\u00a0\u00a0 while(y &lt; p[2]-&gt;y){\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 drawHorizontalLine(y, x1, x2, c);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 y++;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 x1 += dx[0];\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 x2 += dx[2];\r\n\u00a0\u00a0\u00a0 }\r\n}\r\n\r\n\r\n\r\nvoid\r\ndrawRect(Point p1, Point p2, Color rgb)\r\n{\r\n\u00a0\u00a0\u00a0 int i, j;\r\n\u00a0 \u00a0\u00a0\u00a0 \u00a0for(i = p1.x; i &lt; p2.x; i++)\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0for(j = p1.y; j &lt; p2.y; j++)\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0drawPixel(i, j, rgb);\r\n}\r\n\r\nvoid\r\ndraw(void)\r\n{\r\n\u00a0\u00a0\u00a0 drawRect((Point){40,140}, (Point){50,150}, (Color) {255, 0, 255});\r\n\u00a0\u00a0\u00a0 drawRect((Point){80,140}, (Point){90,150}, (Color) {255, 0, 255});\r\n\u00a0\u00a0\u00a0 drawRect((Point){62,160}, (Point){68,180}, (Color) {10, 123, 233});\r\n\u00a0\u00a0\u00a0 drawRect((Point){40,195}, (Point){90,200}, (Color) {123, 233, 10});\r\n\u00a0\u00a0 \u00a0\r\n\/\/\u00a0\u00a0\u00a0 drawLine((Point){0, 0}, (Point){50, 30});\r\n\/\/\u00a0\u00a0\u00a0 drawLine((Point){0, 0}, (Point){30, 50});\r\n\/\/\u00a0\u00a0\u00a0 drawLine((Point){50, 0}, (Point){50, 50});\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 drawTriFlat((Point){30,120}, (Point){100, 120}, (Point){65, 100}, (Color){25, 85, 155});\r\n}\r\n\r\nint\r\nmain(void)\r\n{\r\n\u00a0\u00a0 \u00a0int running = 1;\r\n\u00a0\u00a0 \u00a0int w = 640;\r\n\u00a0\u00a0 \u00a0int h = 480;\r\n\u00a0\u00a0 \u00a0SDL_Event event;\r\n\r\n\u00a0\u00a0 \u00a0SDL_Init(SDL_INIT_VIDEO);\r\n\r\n\u00a0\u00a0 \u00a0screen = SDL_SetVideoMode(w, h, 32, SDL_HWSURFACE);\r\n\r\n\u00a0\u00a0 \u00a0while(running){\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0while(SDL_PollEvent(&amp;event))\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0if(event.type == SDL_QUIT)\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0running = 0;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0SDL_LockSurface(screen);\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0draw();\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0SDL_UnlockSurface(screen);\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0SDL_UpdateRect(screen, 0, 0, 0, 0);\r\n\u00a0\u00a0 \u00a0}\r\n\r\n\u00a0\u00a0 \u00a0SDL_Quit();\r\n\u00a0\u00a0 \u00a0return 0;\r\n}\r\n<\/pre>\n<p>bringt:<\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"https:\/\/wordpress.wvs-berlin.de\/wp-content\/uploads\/test3.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1714\" src=\"https:\/\/wordpress.wvs-berlin.de\/wp-content\/uploads\/test3.png\" alt=\"test3\" width=\"115\" height=\"153\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>Angelo will keine Kreise machen.<\/p>\n<pre style=\"font-size: .7em;\">#include \r\n#include \r\n#include \r\n#include &lt;SDL\/SDL.h&gt;\r\n#include \r\ntypedef struct _Color Color;\r\nstruct _Color \r\n{\r\n    unsigned char r, g, b;\r\n};\r\n\r\ntypedef struct _Point Point;\r\nstruct _Point\r\n{\r\n    int x, y;\r\n};\r\n\r\nSDL_Surface *screen;\r\n\r\nvoid\r\ndrawPixel(int x, int y, Color c)\r\n{\r\n    *((Uint32*)((char*)screen-&gt;pixels + x*screen-&gt;format-&gt;BytesPerPixel + y*screen-&gt;pitch)) = SDL_MapRGB(screen-&gt;format, c.r, c.g, c.b);\r\n}\r\n\r\nvoid\r\ndrawLine(Point p1, Point p2, Color c)\r\n{\r\n    int dx, dy;\r\n    int incx, incy;\r\n    float m;\r\n    dx = p2.x - p1.x;\r\n    dy = p2.y - p1.y;\r\n    incx = dx&gt;0 ? 1 : -1;\r\n    incy = dy&gt;0 ? 1 : -1;\r\n    if(dx == 0){\r\n        int y;\r\n        for(y = p1.y; y != p2.y; y += incy)\r\n            drawPixel(p1.x, y, c);\r\n        return;\r\n    }\r\n\r\n    if(abs(dx)&gt;abs(dy)){\r\n        int x;\r\n        float y;\r\n        m = (float)dy\/(float)abs(dx);\r\n        y = p1.y;\r\n        for(x = p1.x; x != p2.x; x += incx){\r\n            drawPixel(x, y+0.5f, c);\r\n            y += m;\r\n        }\r\n    }else{\r\n        int y;\r\n        float x;\r\n        m = (float)dx\/(float)abs(dy);\r\n        x = p1.x;\r\n        for(y = p1.y; y != p2.y; y += incy){\r\n            drawPixel(x+0.5f, y, c);\r\n            x += m;\r\n        }\r\n    }\r\n}\r\n\r\nvoid\r\ndrawTriWire(Point p1, Point p2, Point p3, Color c)\r\n{\r\n    drawLine(p1, p2, c);\r\n    drawLine(p2, p3, c);\r\n    drawLine(p3, p1, c);\r\n}\r\n\r\nvoid\r\ndrawHorizontalLine(int y, float x1f, float x2f, Color c) {\r\n    int x1, x2, tmp;\r\n    x1 = (x1f == (int)x1f) ? x1f : x1f+1;\r\n    x2 = (x2f == (int)x2f) ? x2f : x2f+1;\r\n    if(x1 &gt; x2){\r\n        tmp = x1;\r\n        x1 = x2;\r\n        x2 = tmp;\r\n    }\r\n    while(x1 &lt; x2)         drawPixel(x1++, y, c); } void \/\/~ sortPoints(Point **p) ident mit zeile drunter, for educational purpose only  sortPoints(Point *p[]) { #define SWAPPOINT(p,q) { \\         tmp = p;      \\         p = q;     \\         q = tmp;      \\     }     Point *tmp;     if(p[0]-&gt;y &gt; p[1]-&gt;y) \r\n        SWAPPOINT(p[0], p[1]);\r\n    if(p[0]-&gt;y &gt; p[2]-&gt;y)\r\n        SWAPPOINT(p[0], p[2]);\r\n    if(p[1]-&gt;y &gt; p[2]-&gt;y) \r\n        SWAPPOINT(p[1], p[2]);\r\n#undef SWAPPOINT\r\n}\r\n\r\nvoid\r\ndrawTriFlat(Point p1, Point p2, Point p3, Color c)\r\n{\r\n    float dx[3];\r\n    int y;\r\n    float x1, x2;\r\n    Point *p[] = {&amp;p1, &amp;p2, &amp;p3};\r\n    sortPoints(p);\r\n#define D(p,q) (q-&gt;y - p-&gt;y == 0 ? 0.0f : (float) (q-&gt;x - p-&gt;x) \/ (q-&gt;y - p-&gt;y))\r\n    \/\/~ dx[0] = (float) (p[2]-&gt;x - p[0]-&gt;x) \/ (p[2]-&gt;y - p[0]-&gt;y);\r\n    dx[0] = D(p[0], p[2]);\r\n    dx[1] = D(p[0], p[1]);\r\n    dx[2] = D(p[1], p[2]);\r\n#undef D\r\n    y = p[0]-&gt;y;\r\n    x1 = x2 = p[0]-&gt;x;\r\n    while(y &lt; p[1]-&gt;y){\r\n        drawHorizontalLine(y, x1, x2, c);\r\n        y++;\r\n        x1 += dx[0];\r\n        x2 += dx[1];\r\n    }\r\n    x2 = p[1]-&gt;x;\r\n    while(y &lt; p[2]-&gt;y){\r\n        drawHorizontalLine(y, x1, x2, c);\r\n        y++;\r\n        x1 += dx[0];\r\n        x2 += dx[2];\r\n    }\r\n}\r\n\r\n\r\n\r\nvoid\r\ndrawRect(Point p1, Point p2, Color rgb)\r\n{\r\n    int i, j;\r\n   \tfor(i = p1.x; i &lt; p2.x; i++)\r\n\t\tfor(j = p1.y; j &lt; p2.y; j++)\r\n\t\t\tdrawPixel(i, j, rgb);\r\n}\r\n\r\nvoid \r\ndrawCircle(Point center, int radius, Color c) {\r\n    Point p;\r\n    int x;\r\n    int y;\r\n    for(x = 0; x &lt; radius; x++){\r\n        y = sqrt(radius*radius - x*x);\r\n        drawLine((Point) {center.x + x, center.y + y}, (Point) {center.x + x, center.y - y}, c); \r\n        drawLine((Point) {center.x - x, center.y + y}, (Point) {center.x - x, center.y - y}, c); \r\n    }\r\n\r\n}\r\n\r\nvoid\r\ndraw(void)\r\n{\r\n    drawCircle((Point){65, 170}, 45, (Color) {128, 128, 0});\r\n    drawRect((Point){40,140}, (Point){50,150}, (Color) {255, 0, 255});\r\n    drawRect((Point){80,140}, (Point){90,150}, (Color) {255, 0, 255});\r\n    drawRect((Point){62,160}, (Point){68,180}, (Color) {10, 123, 233});\r\n    drawRect((Point){40,195}, (Point){90,200}, (Color) {123, 233, 10});\r\n    \r\n\/\/    drawLine((Point){0, 0}, (Point){50, 30});\r\n\/\/    drawLine((Point){0, 0}, (Point){30, 50});\r\n\/\/    drawLine((Point){50, 0}, (Point){50, 50});\r\n        drawTriFlat((Point){30,120}, (Point){100, 120}, (Point){65, 100}, (Color){25, 85, 155});\r\n}\r\n\r\nint\r\nmain(void)\r\n{\r\n\tint running = 1;\r\n\tint w = 640;\r\n\tint h = 480;\r\n\tSDL_Event event;\r\n\r\n\tSDL_Init(SDL_INIT_VIDEO);\r\n\r\n\tscreen = SDL_SetVideoMode(w, h, 32, SDL_HWSURFACE);\r\n\r\n\twhile(running){\r\n\t\twhile(SDL_PollEvent(&amp;event))\r\n\t\t\tif(event.type == SDL_QUIT)\r\n\t\t\t\trunning = 0;\r\n\t\tSDL_LockSurface(screen);\r\n\t\tdraw();\r\n\t\tSDL_UnlockSurface(screen);\r\n\t\tSDL_UpdateRect(screen, 0, 0, 0, 0);\r\n\t}\r\n\r\n\tSDL_Quit();\r\n\treturn 0;\r\n}\r\n\r\n<\/pre>\n<p><a href=\"https:\/\/wordpress.wvs-berlin.de\/wp-content\/uploads\/chinese.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1718\" src=\"https:\/\/wordpress.wvs-berlin.de\/wp-content\/uploads\/chinese.png\" alt=\"chinese\" width=\"119\" height=\"150\" \/><\/a><\/p>\n<p>N\u00e4chste Woche ist nicht.<\/p>\n<p>&nbsp;<\/p>\n<p>Angelo orientiert sich nach dem <a href=\"http:\/\/mtz01-a.stanford.edu\/resources\/SonyPS2\/pdf00005.pdf\" target=\"_blank\">GS UsersManual f\u00fcr die PS2<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Morten, Johannes und Angelo sind da. Der Code wird perfektioniert: &nbsp; #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include &lt;assert.h&gt; #include &lt;SDL\/SDL.h&gt; typedef struct _Color Color; struct _Color { \u00a0\u00a0\u00a0 unsigned char r, g, b; }; typedef struct _Point Point; struct _Point { \u00a0\u00a0\u00a0 int x, y; }; SDL_Surface *screen; void drawPixel(int x, int y, Color c) { [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[19,34,22,17,31,3,7,8],"tags":[],"class_list":["post-1712","post","type-post","status-publish","format-standard","hentry","category-c","category-computer","category-lernserver","category-schulnetzwerk","category-sdl","category-tagesberichte","category-termine","category-tisch"],"_links":{"self":[{"href":"https:\/\/wordpress.wvs-berlin.de\/index.php?rest_route=\/wp\/v2\/posts\/1712","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.wvs-berlin.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.wvs-berlin.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.wvs-berlin.de\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.wvs-berlin.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1712"}],"version-history":[{"count":6,"href":"https:\/\/wordpress.wvs-berlin.de\/index.php?rest_route=\/wp\/v2\/posts\/1712\/revisions"}],"predecessor-version":[{"id":1720,"href":"https:\/\/wordpress.wvs-berlin.de\/index.php?rest_route=\/wp\/v2\/posts\/1712\/revisions\/1720"}],"wp:attachment":[{"href":"https:\/\/wordpress.wvs-berlin.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1712"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.wvs-berlin.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1712"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.wvs-berlin.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1712"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}