- if (cryst->unit_cell) {
- int y_coor1 , y_coor2;
-
- if (MI_NPIXELS(mi) > 2)
- XSetForeground(display, cryst->gc, MI_PIXEL(mi, NRAND(MI_NPIXELS(mi))));
- else
- XSetForeground(display, cryst->gc, MI_WHITE_PIXEL(mi));
- if (cryst->grid_cell) {
- int inx, iny;
-
- if ( cryst->invert )
- y_coor1 = y_coor2 = cryst->win_height - cryst->offset_h;
- else
- y_coor1 = y_coor2 = cryst->offset_h;
- XDrawLine(display, window, cryst->gc, cryst->offset_w,
- y_coor1, cryst->offset_w + cryst->nx * cryst->a,
- y_coor2);
- if ( cryst->invert )
- {
- y_coor1 = cryst->win_height - cryst->offset_h;
- y_coor2 = cryst->win_height - (int) (cryst->ny *
- cryst->b *
- cos((cryst->gamma - 90) * PI_RAD)) -
- cryst->offset_h;
- }
- else
- {
- y_coor1 = cryst->offset_h;
- y_coor2 = (int) (cryst->ny * cryst->b *
- cos((cryst->gamma - 90) * PI_RAD)) +
- cryst->offset_h;
- }
- XDrawLine(display, window, cryst->gc, cryst->offset_w,
- y_coor1, (int) (cryst->offset_w - cryst->ny * cryst->b *
- sin((cryst->gamma - 90) * PI_RAD)),
- y_coor2);
- inx = cryst->nx;
- for (iny = 1; iny <= cryst->ny; iny++) {
- if ( cryst->invert )
- {
- y_coor1 = cryst->win_height -
- (int) (iny * cryst->b * cos((cryst->gamma - 90) *
- PI_RAD)) - cryst->offset_h;
- y_coor2 = cryst->win_height -
- (int) (iny * cryst->b * cos((cryst->gamma - 90) *
- PI_RAD)) -
- cryst->offset_h;
- }
- else
- {
- y_coor1 = (int) (iny * cryst->b * cos((cryst->gamma - 90) *
- PI_RAD)) + cryst->offset_h;
- y_coor2 = (int) (iny * cryst->b * cos((cryst->gamma - 90) * PI_RAD)) +
- cryst->offset_h;
- }
- XDrawLine(display, window, cryst->gc,
- (int) (cryst->offset_w +
- inx * cryst->a - (int) (iny * cryst->b *
- sin((cryst->gamma - 90) * PI_RAD))),
- y_coor1,
- (int) (cryst->offset_w - iny * cryst->b *
- sin((cryst->gamma - 90) * PI_RAD)),
- y_coor2);
- }
- iny = cryst->ny;
- for (inx = 1; inx <= cryst->nx; inx++) {
- if ( cryst->invert )
- {
- y_coor1 =cryst->win_height -
- (int) (iny * cryst->b *
- cos((cryst->gamma - 90) *
- PI_RAD)) - cryst->offset_h;
- y_coor2 =cryst->win_height - cryst->offset_h;
- }
- else
- {
- y_coor1 =(int) (iny * cryst->b *
- cos((cryst->gamma - 90) *
- PI_RAD)) + cryst->offset_h;
- y_coor2 =cryst->offset_h;
- }
- XDrawLine(display, window, cryst->gc,
- (int) (cryst->offset_w +
- inx * cryst->a - (int) (iny * cryst->b *
- sin((cryst->gamma - 90) * PI_RAD))),
- y_coor1,
- cryst->offset_w + inx * cryst->a,
- y_coor2);
- }
- } else {
- int inx, iny;
-
- inx = NRAND(cryst->nx);
- iny = NRAND(cryst->ny);
- if ( cryst->invert )
- {
- y_coor1 =cryst->win_height -
- (int) (iny * cryst->b *
- cos((cryst->gamma - 90) *
- PI_RAD)) -
- cryst->offset_h;
- y_coor2 =cryst->win_height -
- (int) ( ( iny + 1 ) * cryst->b *
- cos((cryst->gamma - 90) *
- PI_RAD)) -
- cryst->offset_h;
- }
- else
- {
- y_coor1 =(int) (iny * cryst->b *
- cos((cryst->gamma - 90) *
- PI_RAD)) +
- cryst->offset_h;
- y_coor2 =(int) (( iny + 1 ) * cryst->b *
- cos((cryst->gamma - 90) *
- PI_RAD)) +
- cryst->offset_h;
- }
- XDrawLine(display, window, cryst->gc,
- cryst->offset_w + inx * cryst->a - (int) (iny * cryst->b * sin((cryst->gamma - 90) * PI_RAD)),
- y_coor1,
- cryst->offset_w + (inx + 1) * cryst->a - (int) (iny * cryst->b * sin((cryst->gamma - 90) * PI_RAD)),
- y_coor1);
- XDrawLine(display, window, cryst->gc,
- cryst->offset_w + inx * cryst->a - (int) (iny * cryst->b * sin((cryst->gamma - 90) * PI_RAD)),
- y_coor1,
- cryst->offset_w + inx * cryst->a - (int) ((iny + 1) * cryst->b * sin((cryst->gamma - 90) * PI_RAD)),
- y_coor2);
- XDrawLine(display, window, cryst->gc,
- cryst->offset_w + (inx + 1) * cryst->a - (int) (iny * cryst->b * sin((cryst->gamma - 90) * PI_RAD)),
- y_coor1,
- cryst->offset_w + (inx + 1) * cryst->a - (int) ((iny + 1) * cryst->b * sin((cryst->gamma - 90) * PI_RAD)),
- y_coor2);
- XDrawLine(display, window, cryst->gc,
- cryst->offset_w + inx * cryst->a - (int) ((iny + 1) * cryst->b * sin((cryst->gamma - 90) * PI_RAD)),
- y_coor2,
- cryst->offset_w + (inx + 1) * cryst->a - (int) ((iny + 1) * cryst->b * sin((cryst->gamma - 90) * PI_RAD)),
- y_coor2);
- }
- }