JunkBox_Lib 1.10.1
Loading...
Searching...
No Matches
window.c
Go to the documentation of this file.
1
8#include "window.h"
9
10
11double X_Dx, X_Dy, X_Wx, X_Wy;
12double X_Now = 0.0, Y_Now = 0.0;
13
14
26void setWindow(WSGraph vp, double x1, double y1, double x2, double y2)
27{
28 if (x1==x2 || y1==y2) return;
29
30 X_Dx = (vp.xs - 1)/Xabs(x2 - x1);
31 X_Dy = (vp.ys - 1)/Xabs(y2 - y1);
32 X_Wx = Min(x1, x2);
33 X_Wy = Max(y1, y2);
34}
35
36
47void wSetPixel(WSGraph vp, double x, double y, int cc)
48{
49 int i, j;
50
51 i = (int)((x - X_Wx)*X_Dx + 0.5);
52 j = (int)((X_Wy - y)*X_Dy + 0.5);
53
54 SetPixel(vp, i, j, cc);
55}
56
57
69int wGetPixel(WSGraph vp, double x, double y)
70{
71 int i, j;
72
73 i = (int)((x - X_Wx)*X_Dx + 0.5);
74 j = (int)((X_Wy - y)*X_Dy + 0.5);
75
76 return GetPixel(vp, i, j);
77}
78
79
92void wLine(WSGraph vp, double x1, double y1, double x2, double y2, int cc)
93{
94 int i1, j1, i2, j2;
95
96 i1 = (int)((x1 - X_Wx)*X_Dx + 0.5);
97 i2 = (int)((x2 - X_Wx)*X_Dx + 0.5);
98 j1 = (int)((X_Wy - y1)*X_Dy + 0.5);
99 j2 = (int)((X_Wy - y2)*X_Dy + 0.5);
100
101 line(vp, i1, j1, i2, j2, cc);
102}
103
104
113void wMove(double x1, double y1)
114{
115 X_Now = x1;
116 Y_Now = y1;
117}
118
119
131void wDraw(WSGraph vp, double x1, double y1, int cc)
132{
133 wLine(vp, X_Now, Y_Now, x1, y1, cc);
134
135 X_Now = x1;
136 Y_Now = y1;
137}
138
139
148void wMove_Rel(double x1, double y1)
149{
150 X_Now += x1;
151 Y_Now += y1;
152}
153
154
166void wDraw_Rel(WSGraph vp, double x1, double y1, int cc)
167{
168 double x2, y2;
169
170 x2 = X_Now + x1;
171 y2 = Y_Now + y1;
172
173 wLine(vp, X_Now, Y_Now, x2, y2, cc);
174
175 X_Now = x2;
176 Y_Now = y2;
177}
178
#define Min(x, y)
Definition common.h:250
#define Max(x, y)
Definition common.h:247
#define Xabs(x)
Definition common.h:257
void line(WSGraph vp, int x1, int y1, int x2, int y2, int cc)
Definition graph.c:462
#define GetPixel(vp, x, y)
Definition graph.h:92
#define SetPixel(vp, x, y, cc)
Definition graph.h:72
int xs
xサイズ. 4Byte.
Definition gdata.h:43
int ys
yサイズ. 4Byte.
Definition gdata.h:44
void wSetPixel(WSGraph vp, double x, double y, int cc)
Definition window.c:47
double X_Wy
スクリーン座標系の原点に対するワールド座標系の y成分.
Definition window.c:11
void wDraw_Rel(WSGraph vp, double x1, double y1, int cc)
Definition window.c:166
void wDraw(WSGraph vp, double x1, double y1, int cc)
Definition window.c:131
void wMove(double x1, double y1)
Definition window.c:113
double X_Dy
ワールド座標系の y成分1ドットに対するスクリーン座標系のドット数.
Definition window.c:11
double Y_Now
ペンの現地点の y成分(ワールド座標系)
Definition window.c:12
void setWindow(WSGraph vp, double x1, double y1, double x2, double y2)
Definition window.c:26
int wGetPixel(WSGraph vp, double x, double y)
Definition window.c:69
double X_Now
ペンの現地点の x成分(ワールド座標系)
Definition window.c:12
double X_Wx
スクリーン座標系の原点に対するワールド座標系の x成分.
Definition window.c:11
void wLine(WSGraph vp, double x1, double y1, double x2, double y2, int cc)
Definition window.c:92
double X_Dx
ワールド座標系の x成分1ドットに対するスクリーン座標系のドット数.
Definition window.c:11
void wMove_Rel(double x1, double y1)
Definition window.c:148
グラフィック用ワールド座標系サポート ヘッダ