Как нарисовать сердце с помощью winbgim в с++?

Надо нарисовать сердце по мат. модели. Вот, что у меня естьвведите сюда описание изображения

#include <iostream>
#include <conio.h>
#include "winbgim.h"
#include <math.h>

struct Dot3d
{
int x, y, z;
};
Dot3d Heart[4];
int Rebro=200;
int Rebra[4][2]={{0, 1}, {2, 3},{4, 5}};

void InitHeart(int, int, int, int);
void PaintHeart(Dot3d *);

int main(int argc, char** argv) {
int Mx, My;
initwindow(1200, 1000);
Mx = getmaxx()/2;;
My = getmaxy()/2;;

InitHeart(Mx,My,0, Rebro);
PaintHeart(Heart);

getch();
return 0;
}
void InitHeart(int x1, int y1, int z1, int m)
{
Heart[0].x=x1;                  Heart[0].y=y1;                  Heart[0].z=z1;
Heart[1].x=Heart[0].x+m;        Heart[1].y=Heart[0].y;          Heart[1].z=Heart[0].z;
Heart[2].x=Heart[0].x+m;        Heart[2].y=Heart[0].y;          Heart[2].z=Heart[0].z+m;
Heart[3].x=Heart[0].x;          Heart[3].y=Heart[0].y;          Heart[3].z=Heart[0].z+m;
Heart[4].x=Heart[0].x;          Heart[4].y=Heart[0].y-m;        Heart[4].z=Heart[0].z;
Heart[5].x=Heart[0].x+m;        Heart[5].y=Heart[0].y-m;        Heart[5].z=Heart[0].z;
}
void PaintHeart(Dot3d *c)
{
int yt1, yt2, xt1, xt2;
double koefZX;
double koefZY;
koefZX=0;
koefZY=0;

for(int i=0; i<4; i++)
{

xt1=c[Rebra[i][0]].x-c[Rebra[i][0]].z*koefZX;
yt1=c[Rebra[i][0]].y-c[Rebra[i][0]].z*koefZY;
xt2=c[Rebra[i][1]].x-c[Rebra[i][1]].z*koefZX;
yt2=c[Rebra[i][1]].y-c[Rebra[i][1]].z*koefZY;
setcolor(i+2);
line(xt1, yt1, xt2, yt2);

}
}

Ответы (0 шт):