📄 arith.c
字号:
#include "u.h"#include "lib.h"#include "draw.h"PointPt(int x, int y){ Point p; p.x = x; p.y = y; return p;}RectangleRect(int x, int y, int bx, int by){ Rectangle r; r.min.x = x; r.min.y = y; r.max.x = bx; r.max.y = by; return r;}RectangleRpt(Point min, Point max){ Rectangle r; r.min = min; r.max = max; return r;}Pointaddpt(Point a, Point b){ a.x += b.x; a.y += b.y; return a;}Pointsubpt(Point a, Point b){ a.x -= b.x; a.y -= b.y; return a;}Rectangleinsetrect(Rectangle r, int n){ r.min.x += n; r.min.y += n; r.max.x -= n; r.max.y -= n; return r;}Pointdivpt(Point a, int b){ a.x /= b; a.y /= b; return a;}Pointmulpt(Point a, int b){ a.x *= b; a.y *= b; return a;}Rectanglerectsubpt(Rectangle r, Point p){ r.min.x -= p.x; r.min.y -= p.y; r.max.x -= p.x; r.max.y -= p.y; return r;}Rectanglerectaddpt(Rectangle r, Point p){ r.min.x += p.x; r.min.y += p.y; r.max.x += p.x; r.max.y += p.y; return r;}inteqpt(Point p, Point q){ return p.x==q.x && p.y==q.y;}inteqrect(Rectangle r, Rectangle s){ return r.min.x==s.min.x && r.max.x==s.max.x && r.min.y==s.min.y && r.max.y==s.max.y;}intrectXrect(Rectangle r, Rectangle s){ return r.min.x<s.max.x && s.min.x<r.max.x && r.min.y<s.max.y && s.min.y<r.max.y;}intrectinrect(Rectangle r, Rectangle s){ return s.min.x<=r.min.x && r.max.x<=s.max.x && s.min.y<=r.min.y && r.max.y<=s.max.y;}intptinrect(Point p, Rectangle r){ return p.x>=r.min.x && p.x<r.max.x && p.y>=r.min.y && p.y<r.max.y;}Rectanglecanonrect(Rectangle r){ int t; if (r.max.x < r.min.x) { t = r.min.x; r.min.x = r.max.x; r.max.x = t; } if (r.max.y < r.min.y) { t = r.min.y; r.min.y = r.max.y; r.max.y = t; } return r;}voidcombinerect(Rectangle *r1, Rectangle r2){ if(r1->min.x > r2.min.x) r1->min.x = r2.min.x; if(r1->min.y > r2.min.y) r1->min.y = r2.min.y; if(r1->max.x < r2.max.x) r1->max.x = r2.max.x; if(r1->max.y < r2.max.y) r1->max.y = r2.max.y;} ulongdrawld2chan[] = { GREY1, GREY2, GREY4, CMAP8,};ulongsetalpha(ulong color, uchar alpha){ int red, green, blue; red = (color >> 3*8) & 0xFF; green = (color >> 2*8) & 0xFF; blue = (color >> 1*8) & 0xFF; /* ignore incoming alpha */ red = (red * alpha)/255; green = (green * alpha)/255; blue = (blue * alpha)/255; return (red<<3*8) | (green<<2*8) | (blue<<1*8) | (alpha<<0*8);}Point ZP;Rectangle ZR;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -