Untitled
unknown
plain_text
2 years ago
2.0 kB
6
Indexable
If you're specifically looking for changes to make the code work with Turbo C, you'll need to adjust it to work with the Turbo C environment, which includes using the `graphics.h` library and functions like `initgraph()` and `closegraph()` for graphics rendering. Here's the modified code:
```c
#include <stdio.h>
#include <conio.h>
#include <graphics.h>
#include <math.h>
int main() {
int x1, y1, x2, y2, xx1, yy1, xx2, yy2, xmin, ymin, xmax, ymax, i, dx, dy;
float p[4], q[4], u1 = 0, u2 = 1, r[4];
int gd = DETECT, gm;
initgraph(&gd, &gm, "");
printf("Enter the coordinate point of A: ");
scanf("%d%d", &x1, &y1);
printf("Enter the coordinates of point B: ");
scanf("%d%d", &x2, &y2);
printf("Enter the coordinates of Xmin & Ymin: ");
scanf("%d%d", &xmin, &ymin);
printf("Enter the coordinates of Xmax and Ymax: ");
scanf("%d%d", &xmax, &ymax);
rectangle(xmin, ymin, xmax, ymax);
dx = x2 - x1;
dy = y2 - y1;
p[0] = -dx;
p[1] = dx;
p[2] = -dy;
p[3] = dy;
q[0] = x1 - xmin;
q[1] = xmax - x1;
q[2] = y1 - ymin;
q[3] = ymax - y1;
for (i = 0; i < 4; i++) {
if (p[i] == 0 && q[i] < 0) {
printf("Discarded line");
getch();
closegraph();
return 0;
}
r[i] = q[i] / p[i];
if (p[i] < 0) {
u1 = fmax(r[i], u1);
}
if (p[i] > 0) {
u2 = fmin(r[i], u2);
}
}
if (u1 <= u2) {
xx1 = x1 + (u1 * dx);
yy1 = y1 + (u1 * dy);
xx2 = x1 + (u2 * dx);
yy2 = y1 + (u2 * dy);
delay(30);
line(xx1, yy1, xx2, yy2);
getch();
} else {
printf("Line lies outside the clipping window");
}
closegraph();
return 0;
}
```
This code should work in Turbo C environment, utilizing its specific graphics functions and libraries. Make sure you have the Turbo C environment set up correctly, with graphics libraries and headers properly configured.Editor is loading...
Leave a Comment