闲来无事,在家用起了EasyX图形库。画了一个爱心,如有不善之处请指正。
定义一个头文件(这也是函数的主体),笔者用的是vs。
#pragma once#include<graphics.h>void heart(int x,int y, double scale) {setfillcolor(RED);solidrectangle((x -35) * scale, y * scale, (x + 35) * scale, (y + 90) * scale);solidcircle((x - 45) * scale, y * scale, 55 * scale);solidcircle((x + 45) * scale, y * scale, 55 * scale);setlinecolor(COLORREF(BLACK));for (int i = 0; i <= 35; i++) {POINT pts1[] = {{(x - 70 - i * 1) * scale,(y - 50) * scale},{(x - 140 - i * 1) * scale,y * scale},{(x - 15 - i * 1) * scale,(y + 50) * scale},{(x - i * 1) * scale,(y + 90) * scale}};POINT pts2[] = {{(x + 70 + i * 1) * scale,(y - 50) * scale},{(x + 135 + i * 1) * scale,y * scale},{(x + 17 + i * 1) * scale,(y + 50) * scale},{(x + i * 1) * scale,(y + 90) * scale}};polybezier(pts1, 4);polybezier(pts2, 4);}}
用上此函数的实际操作:
#include<graphics.h>#include<iostream>#include"heart.h"//插入自己定义的库using namespace std;int main() {int n;initgraph(800, 600);setfillcolor(COLORREF(RED));heart(400, 300, 1);//调用库中函数heartn = getchar();}
注:一定要记得把"标头.h"改成"heart.h"!
附上效果(等大):
此函数只是一个绘图函数,也可以用普通的函数定义方式。
如有对定义方法不明确的读者,可以访问这个网址获取帮助。
忘了说了,因为缩放方式是比例尺,所以缩放之后的坐标K与输入坐标k的关系为:
K=k/(1/scale)