diff --git a/batrang.c b/batrang.c new file mode 100644 index 0000000000000000000000000000000000000000..52aabf28ad4f0b6c3752e8221941ff030e383ed4 --- /dev/null +++ b/batrang.c @@ -0,0 +1,91 @@ +#include <stdio.h> +#include <stdlib.h> +#include <graphics.h> +#include <math.h> + +void bezier (int x[4], int y[4]) +{ + + int i; + double t; + double xm,ym; + + xm = getmaxx()/2; + ym = getmaxy()/2; + + for (i=0; i<4; i++) + putpixel ((xm+x[i]), (ym-y[i]), YELLOW); + + for (t = 0.0; t < 1.0; t += 0.0001) + { + double xt = pow (1-t, 3) * x[0] + 3 * t * pow (1-t, 2) * x[1] + + 3 * pow (t, 2) * (1-t) * x[2] + pow (t, 3) * x[3]; + + double yt = pow (1-t, 3) * y[0] + 3 * t * pow (1-t, 2) * y[1] + + 3 * pow (t, 2) * (1-t) * y[2] + pow (t, 3) * y[3]; + + xt += xm; + yt = ym - yt; + putpixel (xt,yt, WHITE); + } + + return; +} + +void main() +{ + int x[4], y[4]; + int xm,ym; + int gd = DETECT, gm; + + initgraph(&gd, &gm, ""); + + xm = getmaxx()/2; + ym = getmaxy()/2; + + x[0]=xm-20; y[0]=ym; + x[1]=xm-100; y[1]=ym; + x[2]=xm+20; y[2]=ym; + x[3]=xm+100; y[3]=ym; + + line(x[0],y[0],x[1],y[1]); + line(x[2],y[2],x[3],y[3]); + + //Bat left top wing + x[0]=-100; y[0]=0; + x[1]=-60; y[1]=-10; + x[2]=-60; y[2]=-20; + x[3]=-60; y[3]=-30; + bezier (x,y); + + //Bat left bottom wing + x[0]=-60; y[0]=-30; + x[1]=-40; y[1]=-32; + x[2]=-20; y[2]=-34; + x[3]=0; y[3]=-50; + bezier (x,y); + + //Bat right top wing + x[0]=100; y[0]=0; + x[1]=60; y[1]=-10; + x[2]=60; y[2]=-20; + x[3]=60; y[3]=-30; + bezier (x,y); + + //Bat right bottom wing + x[0]=60; y[0]=-30; + x[1]=40; y[1]=-32; + x[2]=20; y[2]=-34; + x[3]=0; y[3]=-50; + bezier (x,y); + + //Bat head cave in + x[0]=-20; y[0]=0; + x[1]=-10; y[1]=-10; + x[2]=10; y[2]=-10; + x[3]=20; y[3]=0; + bezier (x,y); + + getch(); + closegraph(); +} \ No newline at end of file diff --git a/bezier.c b/bezier.c new file mode 100644 index 0000000000000000000000000000000000000000..3025f94b7dd424b2c9116c242b674f105a755382 --- /dev/null +++ b/bezier.c @@ -0,0 +1,32 @@ +#include<graphics.h> +#include<stdlib.h> +#include<stdio.h> +#include<math.h> + +void main(void) +{ + int gdriver = DETECT,gnode,errorcode; + initgraph(&gdriver,&gnode, ""); + int x0,x1,x2,x3,y0,y1,y2,y3; + float u=0.1; + float x,y; + printf("Enter x0 y0"); + scanf("%d %d",&x0,&y0); + printf("Enter x1 y1"); + scanf("%d %d",&x1,&y1); + printf("Enter x2 y2"); + scanf("%d %d",&x2,&y2); + printf("Enter x3 y3"); + scanf("%d %d",&x3,&y3); + for(u=0.1;u!=1;u=u+0.1) + { + + x=(x0*pow((1-u),3))+(x1*3*u*pow((1-u),2))+(x2*3*u*u*(1-u))+(x3*u*u*u); + y=(y0*pow((1-u),3))+(y1*3*u*pow((1-u),2))+(y2*3*u*u*(1-u))+(y3*u*u*u); + line(x0,y0,x,y); + x0=x; + y0=y; + } + getch(); + closegraph(); +} \ No newline at end of file diff --git a/fan2.c b/fan2.c index a093ebff607f8b75f256d26275be905888627385..60dfb077fcdbca44143366b464d889a1cf9514e8 100644 --- a/fan2.c +++ b/fan2.c @@ -34,6 +34,7 @@ int main() i = 0; while (!kbhit()) { + //setfillstyle(HATCH_FILL, (i)%15); pieslice(x, y, i, i+30, 100); pieslice(x, y, i+120, i+150, 100); diff --git a/floral.c b/floral.c new file mode 100644 index 0000000000000000000000000000000000000000..455ba7cc1b5ed7e8ccc398e5e6f2fcfd214075ce --- /dev/null +++ b/floral.c @@ -0,0 +1,104 @@ +#include <stdio.h> +#include <stdlib.h> +#include <graphics.h> +#include <math.h> + +void bezier (int x[4], int y[4]) +{ + + int i; + double t; + double xm,ym; + + xm = getmaxx()/2; + ym = getmaxy()/2; + + for (i=0; i<4; i++) + putpixel ((xm+x[i]), (ym-y[i]), YELLOW); + + for (t = 0.0; t < 1.0; t += 0.0001) + { + double xt = pow (1-t, 3) * x[0] + 3 * t * pow (1-t, 2) * x[1] + + 3 * pow (t, 2) * (1-t) * x[2] + pow (t, 3) * x[3]; + + double yt = pow (1-t, 3) * y[0] + 3 * t * pow (1-t, 2) * y[1] + + 3 * pow (t, 2) * (1-t) * y[2] + pow (t, 3) * y[3]; + + xt += xm; + yt = ym - yt; + putpixel (xt,yt, WHITE); + } + + return; +} + +void main() +{ + int x[4], y[4]; + int xm,ym; + int gd = DETECT, gm; + + initgraph(&gd, &gm, "\\TURBOC3\\BGI"); + + xm = getmaxx()/2; + ym = getmaxy()/2; + + //left-top + x[0]=-30; y[0]=0; + x[1]=-40; y[1]=100; + x[2]=-100; y[2]=40; + x[3]=0; y[3]=30; + bezier (x,y); + + //left-bottom + x[0]=-30; y[0]=0; + x[1]=-40; y[1]=-100; + x[2]=-100; y[2]=-40; + x[3]=0; y[3]=-30; + bezier (x,y); + + //top-right + x[0]=0; y[0]=30; + x[1]=100; y[1]=40; + x[2]=40; y[2]=100; + x[3]=30; y[3]=0; + bezier (x,y); + + //bottom-right + x[0]=30; y[0]=0; + x[1]=40; y[1]=-100; + x[2]=100; y[2]=-40; + x[3]=0; y[3]=-30; + bezier (x,y); + + //top + x[0]=-30; y[0]=30; + x[1]=60; y[1]=100; + x[2]=-60; y[2]=100; + x[3]=30; y[3]=30; + bezier (x,y); + + //right + x[0]=30; y[0]=30; + x[1]=100; y[1]=-60; + x[2]=100; y[2]=60; + x[3]=30; y[3]=-30; + bezier (x,y); + + //bottom + x[0]=-30; y[0]=-30; + x[1]=60; y[1]=-100; + x[2]=-60; y[2]=-100; + x[3]=30; y[3]=-30; + bezier (x,y); + + //left + x[0]=-30; y[0]=30; + x[1]=-100; y[1]=-60; + x[2]=-100; y[2]=60; + x[3]=-30; y[3]=-30; + bezier (x,y); + + circle(xm,ym,2); + getch(); +} \ No newline at end of file diff --git a/js/lines.html b/js/lines.html new file mode 100644 index 0000000000000000000000000000000000000000..a6f9f42208ce8c830f3e350ce225d6f49a802cf5 --- /dev/null +++ b/js/lines.html @@ -0,0 +1,569 @@ +<canvas id="stage"></canvas> +<script src="graphics.js"></script> +<script> + (async function () { + g.line(29,60,43,60); +g.line(115,59,115,41); +g.line(235,45,235,54); +g.line(120,41,120,59); +g.line(1790,38,1790,49); +g.line(1699,1046,1699,1038); +g.line(1771,39,1769,54); +g.line(184,34,183,45); +g.line(1801,30,1785,28); +g.line(1777,68,1795,71); +g.line(154,1031,154,1055); +g.line(180,1055,180,1031); +g.line(51,51,63,51); +g.line(136,51,148,51); +g.line(213,34,213,59); +g.line(88,44,88,58); +g.line(1716,1054,1716,1030); +g.line(1811,56,1810,40); +g.line(31,56,31,34); +g.line(47,45,46,54); +g.line(103,55,103,41); +g.line(188,36,196,36); +g.line(1833,1038,1843,1038); +g.line(1843,1046,1833,1046); +g.line(1854,1038,1864,1038); +g.line(1864,1046,1854,1046); +g.line(1768,55,1778,69); +g.line(1796,70,1807,63); +g.line(1851,60,1868,55); +g.line(175,1031,175,1055); +g.line(1784,28,1769,40); +g.line(216,45,216,38); +g.line(217,59,216,50); +g.line(230,34,214,32); +g.line(226,46,219,47); +g.line(1870,40,1852,49); +g.line(99,41,100,59); +g.line(1852,49,1844,65); +g.line(92,55,91,44); +g.line(1806,63,1812,54); +g.line(95,1042,69,1025); +g.line(69,1059,95,1042); +g.line(155,1056,172,1044); +g.line(196,33,185,33); +g.line(111,41,112,55); +g.line(1798,59,1786,52); +g.line(1786,51,1786,38); +g.line(172,1043,154,1030); +g.line(1789,49,1801,55); +g.line(1853,1026,1853,1036); +g.line(1853,1048,1853,1058); +g.line(241,1024,229,1037); +g.line(229,1047,241,1060); +g.line(27,34,27,59); +g.line(1811,41,1800,29); +g.line(1686,1036,1693,1036); +g.line(1701,1036,1708,1036); +g.line(1693,1048,1686,1048); +g.line(1708,1048,1701,1048); +g.line(1870,65,1886,49); +g.line(221,1036,222,1048); +g.line(124,59,124,48); +g.line(295,1034,295,1049); +g.line(1713,1027,1680,1027); +g.line(1679,1057,1713,1057); +g.line(258,1052,260,1038); +g.line(168,47,161,47); +g.line(43,57,33,57); +g.line(315,1034,315,1045); +g.line(255,1038,254,1048); +g.line(1887,49,1871,32); +g.line(340,1048,341,1034); +g.line(245,1062,259,1051); +g.line(1684,1046,1684,1038); +g.line(1844,1036,1844,1026); +g.line(1844,1058,1844,1048); +g.line(1678,1030,1678,1054); +g.line(436,44,435,54); +g.line(261,59,261,33); +g.line(68,1026,68,1058); +g.line(1859,1051,1864,1051); +g.line(255,1048,245,1057); +g.line(285,43,283,54); +g.line(391,59,391,33); +g.line(415,41,415,59); +g.line(363,36,374,36); +g.line(306,44,304,53); +g.line(358,34,358,59); +g.line(327,1034,328,1048); +g.line(400,59,400,33); +g.line(272,54,268,40); +g.line(371,45,363,45); +g.line(272,67,281,41); +g.line(245,1027,255,1036); +g.line(277,40,274,54); +g.line(431,59,430,41); +g.line(258,33,258,59); +g.line(298,1049,298,1031); +g.line(259,1033,245,1022); +g.line(244,1035,244,1049); +g.line(349,1035,349,1049); +g.line(343,59,342,43); +g.line(388,33,388,59); +g.line(1415,27,241,30); +g.line(265,41,272,60); +g.line(339,44,339,59); +g.line(300,64,300,41); +g.line(317,1046,317,1034); +g.line(406,41,406,59); +g.line(409,59,409,41); +g.line(362,59,361,49); +g.line(449,1034,449,1046); +g.line(404,1046,404,1034); +g.line(451,63,452,41); +g.line(401,1034,401,1048); +g.line(411,1034,411,1046); +g.line(413,1049,414,1034); +g.line(382,59,382,41); +g.line(331,59,330,45); +g.line(368,1051,375,1031); +g.line(327,41,327,59); +g.line(373,1030,365,1051); +g.line(241,1058,241,1026); +g.line(352,1049,352,1031); +g.line(427,45,427,59); +g.line(397,33,397,59); +g.line(1680,995,1680,0); +g.line(418,59,418,48); +g.line(378,41,378,59); +g.line(239,61,239,995); +g.line(432,1049,432,1031); +g.line(430,1034,429,1049); +g.line(1680,1025,1680,999); +g.line(239,1005,239,1024); +g.line(238,996,34,996); +g.line(1678,996,401,996); +g.line(34,1004,238,1004); +g.line(239,4,239,39); +g.line(241,1003,1678,1003); +g.line(1680,1078,1680,1059); +g.line(239,1060,239,1078); +g.line(1885,996,1681,996); +g.line(1683,1003,1885,1003); +g.line(989,688,1000,667); +g.line(706,174,714,140); +g.line(1300,303,1315,273); +g.line(1088,295,1094,275); +g.line(1309,267,1296,297); +g.line(1072,288,1072,268); +g.line(1326,267,1321,285); +g.line(1271,298,1290,267); +g.line(1376,311,1393,277); +g.line(495,319,506,271); +g.line(689,179,690,164); +g.line(1219,183,1236,147); +g.line(705,148,702,163); +g.line(997,669,1011,657); +g.line(1394,293,1387,308); +g.line(510,290,507,308); +g.line(1139,293,1139,274); +g.line(1278,272,1256,310); +g.line(1320,306,1320,290); +g.line(1264,283,1272,265); +g.line(1337,304,1338,289); +g.line(1282,189,1277,172); +g.line(1340,274,1327,303); +g.line(636,518,635,528); +g.line(644,172,650,148); +g.line(1032,182,1051,140); +g.line(1081,269,1081,296); +g.line(814,551,821,523); +g.line(706,423,717,397); +g.line(841,538,858,509); +g.line(1194,516,1195,541); +g.line(1258,186,1277,157); +g.line(528,144,520,163); +g.line(836,551,841,539); +g.line(1122,514,1121,538); +g.line(1205,149,1198,169); +g.line(506,308,503,321); +g.line(531,160,533,150); +g.line(586,297,580,311); +g.line(700,161,697,175); +g.line(971,311,984,277); +g.line(1089,146,1096,164); +g.line(1104,272,1089,312); +g.line(1221,158,1206,186); +g.line(1142,516,1129,551); +g.line(526,296,526,271); +g.line(545,174,556,141); +g.line(549,319,556,280); +g.line(565,281,559,310); +g.line(644,266,645,281); +g.line(812,275,804,305); +g.line(1115,152,1103,179); +g.line(495,150,496,166); +g.line(1010,276,1004,291); +g.line(1007,307,1017,278); +g.line(1022,663,1026,688); +g.line(1105,310,1118,277); +g.line(1126,538,1134,513); +g.line(576,305,579,274); +g.line(791,277,777,313); +g.line(778,394,793,406); +g.line(1066,166,1059,186); +g.line(1074,294,1066,318); +g.line(1111,182,1117,165); +g.line(1207,166,1213,152); +g.line(686,304,696,266); +g.line(745,545,783,540); +g.line(1039,312,1061,271); +g.line(465,172,471,153); +g.line(561,155,553,179); +g.line(581,141,577,177); +g.line(672,172,679,156); +g.line(1058,311,1071,285); +g.line(1148,279,1150,310); +g.line(519,317,513,297); +g.line(852,534,845,554); +g.line(869,139,860,159); +g.line(936,551,948,519); +g.line(1067,278,1044,318); +g.line(1078,182,1084,148); +g.line(507,507,502,519); +g.line(718,159,716,169); +g.line(964,173,964,183); +g.line(1027,282,1014,305); +g.line(1101,164,1109,145); +g.line(481,143,472,178); +g.line(493,275,491,300); +g.line(701,287,694,302); +g.line(781,402,767,417); +g.line(811,304,819,284); +g.line(1337,295,1352,272); +g.line(491,301,482,322); +g.line(602,397,571,452); +g.line(657,288,659,273); +g.line(705,283,714,282); +g.line(870,276,869,293); +g.line(970,585,1030,478); +g.line(1090,548,1108,514); +g.line(1170,155,1165,185); +g.line(510,270,520,296); +g.line(526,399,528,388); +g.line(534,284,531,306); +g.line(672,151,665,171); +g.line(735,416,759,372); +g.line(795,301,808,267); +g.line(832,521,821,553); +g.line(848,278,846,293); +g.line(874,547,893,521); +g.line(1022,308,1036,288); +g.line(1115,167,1124,155); +g.line(1128,277,1113,311); +g.line(1230,301,1254,266); +g.line(510,168,520,139); +g.line(529,300,527,320); +g.line(612,317,626,276); +g.line(633,298,637,309); +g.line(872,511,863,552); +g.line(1124,167,1120,179); +g.line(1181,182,1198,149); +g.line(1194,538,1179,555); +g.line(476,315,484,286); +g.line(486,542,499,502); +g.line(560,522,555,532); +g.line(622,305,621,320); +g.line(1110,526,1097,554); +g.line(1153,274,1147,280); +g.line(1327,288,1331,274); +g.line(767,376,739,426); +g.line(758,416,773,396); +g.line(769,310,786,271); +g.line(835,295,843,281); +g.line(845,313,859,291); +g.line(914,510,915,521); +g.line(1058,169,1059,151); +g.line(1157,550,1171,519); +g.line(1276,172,1265,192); +g.line(1348,289,1344,300); +g.line(423,175,440,133); +g.line(659,152,651,168); +g.line(687,394,673,406); +g.line(720,394,723,381); +g.line(733,382,710,431); +g.line(888,540,882,553); +g.line(896,276,881,313); +g.line(1052,152,1048,171); +g.line(1090,169,1086,185); +g.line(1116,546,1117,525); +g.line(1133,160,1123,167); +g.line(1156,184,1161,163); +g.line(1236,185,1221,186); +g.line(1364,290,1373,298); +g.line(619,544,631,510); +g.line(865,173,865,186); +g.line(877,299,889,272); +g.line(988,294,977,318); +g.line(1070,512,1056,520); +g.line(1180,519,1170,542); +g.line(1292,269,1299,259); +g.line(391,544,411,544); +g.line(563,449,584,411); +g.line(645,282,639,292); +g.line(841,180,863,131); +g.line(858,159,840,200); +g.line(955,182,961,166); +g.line(1031,559,1031,546); +g.line(1043,285,1037,304); +g.line(1094,275,1100,266); +g.line(1147,164,1141,183); +g.line(1175,546,1187,532); +g.line(1187,528,1184,518); +g.line(543,543,553,519); +g.line(572,310,574,299); +g.line(687,159,677,179); +g.line(832,194,842,181); +g.line(934,186,939,160); +g.line(1048,169,1039,190); +g.line(1249,289,1233,311); +g.line(1286,183,1300,185); +g.line(438,161,432,178); +g.line(504,138,497,154); +g.line(537,409,530,432); +g.line(541,144,541,160); +g.line(540,436,545,415); +g.line(550,411,551,422); +g.line(579,414,574,397); +g.line(694,160,698,144); +g.line(769,553,748,553); +g.line(947,160,941,190); +g.line(1122,554,1120,541); +g.line(675,410,691,408); +g.line(791,530,797,541); +g.line(956,519,945,552); +g.line(981,159,965,174); +g.line(1035,488,978,589); +g.line(1198,169,1188,187); +g.line(1219,275,1199,298); +g.line(1240,145,1251,148); +g.line(1316,288,1306,308); +g.line(503,500,528,493); +g.line(521,430,530,403); +g.line(691,418,669,418); +g.line(735,179,708,178); +g.line(712,400,699,384); +g.line(719,286,741,260); +g.line(795,409,792,422); +g.line(831,179,812,180); +g.line(1054,534,1041,546); +g.line(1052,511,1066,504); +g.line(1366,274,1348,291); +g.line(553,421,549,438); +g.line(589,537,599,539); +g.line(662,407,681,384); +g.line(717,434,735,416); +g.line(738,424,723,442); +g.line(1114,265,1135,266); +g.line(574,536,588,516); +g.line(651,543,664,544); +g.line(720,305,720,288); +g.line(781,520,786,529); +g.line(837,274,822,297); +g.line(876,312,868,298); +g.line(978,274,971,285); +g.line(971,181,986,168); +g.line(994,286,1003,276); +g.line(1353,273,1367,263); +g.line(425,314,403,315); +g.line(540,507,559,507); +g.line(557,508,571,522); +g.line(720,139,733,138); +g.line(856,181,866,160); +g.line(871,165,867,176); +g.line(1021,692,995,687); +g.line(1062,140,1066,167); +g.line(1229,309,1229,298); +g.line(448,136,443,150); +g.line(567,178,570,160); +g.line(633,508,646,507); +g.line(825,304,835,295); +g.line(961,167,974,153); +g.line(1032,549,1054,511); +g.line(1121,305,1140,304); +g.line(1296,147,1276,147); +g.line(485,154,494,141); +g.line(662,165,663,154); +g.line(687,383,703,402); +g.line(741,272,725,295); +g.line(796,423,809,413); +g.line(846,293,837,305); +g.line(996,168,980,187); +g.line(1036,304,1026,315); +g.line(1132,179,1137,169); +g.line(1189,296,1215,265); +g.line(404,304,426,305); +g.line(494,172,484,156); +g.line(525,441,536,438); +g.line(666,286,673,301); +g.line(706,314,683,314); +g.line(773,418,786,416); +g.line(835,397,822,414); +g.line(965,276,989,259); +g.line(1275,139,1300,138); +g.line(498,531,494,540); +g.line(579,321,572,310); +g.line(634,530,626,546); +g.line(665,535,660,523); +g.line(837,304,822,315); +g.line(914,521,895,533); +g.line(1144,313,1115,315); +g.line(1199,185,1208,164); +g.line(1301,160,1285,171); +g.line(488,135,480,144); +g.line(629,262,644,268); +g.line(660,524,662,516); +g.line(765,430,749,426); +g.line(898,539,909,547); +g.line(973,151,990,154); +g.line(989,258,1003,259); +g.line(1123,154,1138,151); +g.line(1178,552,1144,561); +g.line(596,522,578,541); +g.line(665,302,658,286); +g.line(779,530,772,520); +g.line(868,294,852,319); +g.line(899,554,892,541); +g.line(1420,278,1402,274); +g.line(538,164,521,178); +g.line(670,529,676,534); +g.line(870,994,869,951); +g.line(1144,561,1132,563); +g.line(1294,274,1286,286); +g.line(410,554,394,554); +g.line(656,311,669,301); +g.line(715,291,701,291); +g.line(993,156,992,172); +g.line(1016,277,1028,269); +g.line(1160,506,1184,508); +g.line(1263,150,1278,139); +g.line(1287,160,1296,154); +g.line(666,169,657,182); +g.line(674,311,659,319); +g.line(707,380,714,392); +g.line(869,948,861,894); +g.line(539,449,523,450); +g.line(697,431,706,419); +g.line(786,426,771,428); +g.line(1193,309,1188,295); +g.line(500,552,482,555); +g.line(529,390,546,381); +g.line(524,545,541,543); +g.line(534,271,535,284); +g.line(557,393,552,403); +g.line(546,267,570,267); +g.line(677,534,676,541); +g.line(695,267,710,262); +g.line(795,518,783,516); +g.line(816,312,812,304); +g.line(818,417,799,431); +g.line(827,269,838,265); +g.line(861,893,868,832); +g.line(1132,553,1155,549); +g.line(1356,306,1340,307); +g.line(472,153,470,140); +g.line(588,517,598,512); +g.line(637,304,651,310); +g.line(968,521,956,522); +g.line(1301,140,1304,154); +g.line(497,160,501,167); +g.line(525,139,535,138); +g.line(681,274,674,275); +g.line(808,173,826,170); +g.line(1214,269,1224,266); +g.line(517,528,498,531); +g.line(817,148,830,142); +g.line(879,514,895,505); +g.line(1003,259,1008,267); +g.line(1396,266,1418,267); +g.line(502,541,518,535); +g.line(631,545,641,544); +g.line(664,267,684,264); +g.line(720,171,735,168); +g.line(820,514,841,512); +g.line(914,554,899,554); +g.line(1087,313,1079,303); +g.line(584,267,599,267); +g.line(670,550,651,555); +g.line(710,431,700,437); +g.line(1026,314,1016,316); +g.line(1056,547,1076,543); +g.line(1141,182,1124,190); +g.line(547,382,557,390); +g.line(565,544,546,548); +g.line(819,277,826,267); +g.line(1004,289,990,296); +g.line(1065,503,1079,503); +g.line(1181,507,1192,517); +g.line(1228,282,1218,275); +g.line(550,435,540,446); +g.line(908,504,914,511); +g.line(934,148,954,147); +g.line(1214,315,1195,314); +g.line(589,282,605,288); +g.line(600,292,589,292); +g.line(795,544,769,553); +g.line(839,268,848,277); +g.line(728,294,731,303); +g.line(1149,306,1142,312); +g.line(437,132,451,129); +g.line(517,543,504,549); +g.line(664,515,679,511); +g.line(965,321,971,311); +g.line(547,551,523,556); +g.line(702,410,691,419); +g.line(980,185,968,191); +g.line(469,141,477,131); +g.line(1029,268,1039,276); +g.line(590,310,598,303); +g.line(893,506,909,505); +g.line(945,511,960,513); +g.line(1084,511,1070,512); +g.line(641,551,628,558); +g.line(1055,558,1037,562); +g.line(1076,552,1055,556); +g.line(1409,293,1399,292); +g.line(445,153,449,158); +g.line(677,541,669,552); +g.line(1047,551,1057,547); +g.line(240,998,400,998); +g.line(730,310,721,301); +g.line(771,512,785,507); +g.line(619,267,629,260); +g.line(780,265,795,265); +g.line(477,131,484,128); +g.line(659,319,641,318); +g.line(1237,882,1256,908); +g.line(535,139,539,145); +g.line(1074,535,1054,535); +g.line(762,304,738,311); +g.line(867,942,865,935); +g.line(1160,149,1177,148); +g.line(1204,871,1238,884); +g.line(737,301,749,300); +g.line(871,836,879,826); +g.line(400,1003,241,1003); +g.line(959,871,960,886); +g.line(1061,526,1070,526); +g.line(1297,969,1298,985); +g.line(942,522,933,514); +g.line(1050,836,1073,838); +g.line(1014,924,1014,910); +g.line(1028,837,1050,836); +g.line(1256,908,1267,929); +g.line(1269,931,1276,938); +g.line(952,862,961,871); +g.line(1005,911,1004,925); +g.line(1073,839,1082,843); +g.line(999,908,1001,890); +g.line(1282,947,1295,969); +g.line(310,995,241,995); +g.line(949,844,952,858); +g.line(1678,22,1608,22); + })(); +</script> diff --git a/lineclipping.c b/lineclipping.c new file mode 100644 index 0000000000000000000000000000000000000000..310179f5f26675351d55462f4da2b7a5be9e0d3f --- /dev/null +++ b/lineclipping.c @@ -0,0 +1,115 @@ +#include<stdio.h> +#include<conio.h> +#include<graphics.h> +void main() +{ +int gd=DETECT, gm; +float i,xmax,ymax,xmin,ymin,x1,y1,x2,y2,m; +float start[4],end[4],code[4]; +clrscr(); +initgraph(&gd,&gm,""); +printf("\n\tPlease enter the bottom left co-ordinate of viewport: "); +scanf("%f %f",&xmin,&ymin); +printf("\n\tPlease enter the top right co-ordinate of viewport: "); +scanf("%f %f",&xmax,&ymax); +printf("\nPlease enter the co-ordinates for starting point of line: "); +scanf("%f %f",&x1,&y1); +printf("\nPlease enter the co-ordinates for ending point of line: "); +scanf("%f %f",&x2,&y2); +for(i=0;i <4;i++) + +{ +start[i]=0; +end[i]=0; +} +m=(y2-y1)/(x2-x1); +if(x1 <xmin) start[0]=1; +if(x1 >xmax) start[1]=1; +if(y1 >ymax) start[2]=1; +if(y1 <ymin) start[3]=1; +if(x2 <xmin) end[0]=1; +if(x2 >xmax) end[1]=1; +if(y2 >ymax) end[2]=1; +if(y2 <ymin) end[3]=1; +for(i=0;i <4;i++) + + +code[i]=start[i]&&end[i]; + +if((code[0]==0)&&(code[1]==0)&&(code[2]==0)&&(code[3]==0)) +{ +if((start[0]==0)&&(start[1]==0)&&(start[2]==0)&&(start[3]==0)&&(end[0]==0)&&(end[1]==0)&&(end[2]==0)&&(end[3]==0)) +{ +cleardevice(); + printf("\n\t\tThe line is totally visible\n\t\tand not a clipping candidate"); + rectangle(xmin,ymin,xmax,ymax); + line(x1,y1,x2,y2); + getch(); +} +else +{ + cleardevice(); + printf("\n\t\tLine is partially visible"); + rectangle(xmin,ymin,xmax,ymax); + line(x1,y1,x2,y2); + getch(); + +if((start[2]==0)&&(start[3]==1)) +{ + x1=x1+(ymin-y1)/m; + y1=ymin; +} +if((end[2]==0)&&(end[3]==1)) +{ + x2=x2+(ymin-y2)/m; + y2=ymin; +} +if((start[2]==1)&&(start[3]==0)) +{ + x1=x1+(ymax-y1)/m; + y1=ymax; +} +if((end[2]==1)&&(end[3]==0)) +{ + x2=x2+(ymax-y2)/m; + y2=ymax; +} +if((start[1]==0)&&(start[0]==1)) +{ + y1=y1+m*(xmin-x1); + x1=xmin; +} +if((end[1]==0)&&(end[0]==1)) +{ + y2=y2+m*(xmin-x2); + x2=xmin; +} +if((start[1]==1)&&(start[0]==0)) +{ + y1=y1+m*(xmax-x1); + x1=xmax; +} +if((end[1]==1)&&(end[0]==0)) +{ + y2=y2+m*(xmax-x2); + x2=xmax; +} + +clrscr(); +cleardevice(); +printf("\n\t\tAfter clippling:"); +rectangle(xmin,ymin,xmax,ymax); +line(x1,y1,x2,y2); +getch(); +} +} +else +{ + clrscr(); + cleardevice(); + printf("\nLine is invisible"); + rectangle(xmin,ymin,xmax,ymax); +} +getch(); +closegraph(); +} \ No newline at end of file diff --git a/literature_survey.md b/literature_survey.md new file mode 100644 index 0000000000000000000000000000000000000000..ddfbbbdac69654b63265d1aba37b49d641ae40ed --- /dev/null +++ b/literature_survey.md @@ -0,0 +1,3 @@ +|authors|name of paper|methodology|remarks| +|-|-|-|-| +|Put second name only. If more than two authors, put et al.| diff --git a/summa.xml b/summa.xml new file mode 100644 index 0000000000000000000000000000000000000000..db09db2d1f06f2bfa3c4d7db650085b39001c883 --- /dev/null +++ b/summa.xml @@ -0,0 +1,7 @@ +<?xml version="1.0"> +<profile> + <name> + <firstname></firstname> + + </name> +</profile> \ No newline at end of file diff --git a/trans.c b/trans.c new file mode 100644 index 0000000000000000000000000000000000000000..03c972f661446d45481d420ee5d25695802f5755 --- /dev/null +++ b/trans.c @@ -0,0 +1,117 @@ +#include<stdio.h> +#include<conio.h> +#include<graphics.h> +#include<math.h> + +void translate(); +void scale(); +void rotate(); + +void main() +{ +int ch; +int gd=DETECT,gm; +initgraph(&gd,&gm,"C:\\TurboC3\\BGI"); + +setcolor(6); +outtextxy (100,88,"Object."); +rectangle(100,150,150,100); + +printf("---MENU---"); +printf("\n 1)Translate\n 2)Scale\n 3)Rotate"); +printf("\nEnter your choice: "); +scanf("%d",&ch); +cleardevice(); + +switch(ch) +{ +case 1: translate(); +break; +case 2: scale(); +break; +case 3: rotate(); +break; +default: printf("you have enterd wrong choice"); +break; +} +getch(); +closegraph(); +} + +void translate() +{ +int tx,ty; +setcolor(2); +outtextxy(240,10,"TRANSLATION"); +outtextxy(238,20,"------------"); +printf("\nEnter tx: "); +scanf("%d",&tx); +printf("\nEnter ty: "); +scanf("%d",&ty); +cleardevice(); +rectangle(100,150,150,100); +printf("\nAfter Translation"); +rectangle(100+tx,150+ty,150+tx,100+ty); +} + +void scale() +{ +int sx,sy; +setcolor(2); +outtextxy(240,10,"SCALING"); +outtextxy(238,20,"--------"); +printf("\nEnter sx: "); +scanf("%d",&sx); +printf("\nEnter sy: "); +scanf("%d",&sy); +cleardevice(); +rectangle(100,150,150,100); +printf("\nAfter Scaling"); +rectangle(100*sx,150*sy,150*sx,100*sy); +} + +void rotate() +{ +float theta; +int x1,x2,x3,x4; +int y1,y2,y3,y4; +int ax1,ax2,ax3,ax4,ay1,ay2,ay3,ay4; +int refx,refy; +printf("\nEnter the angle for rotation: "); +scanf("%f",&theta); +theta=theta*(3.14/180); +cleardevice(); +setcolor(2); +outtextxy(240,10,"ROTATE"); +outtextxy(238,20,"-------"); +refx=100; +refy=100; + +x1=100; +y1=100; +x2=150; +y2=100; +x3=150; +y3=150; +x4=100; +y4=150; + +ax1=refy+(x1-refx)*cos(theta)-(y1-refy)*sin(theta); +ay1=refy+(x1-refx)*sin(theta)+(y1-refy)*cos(theta); + +ax2=refy+(x2-refx)*cos(theta)-(y2-refy)*sin(theta); +ay2=refy+(x2-refx)*sin(theta)+(y2-refy)*cos(theta); + +ax3=refy+(x3-refx)*cos(theta)-(y3-refy)*sin(theta); +ay3=refy+(x3-refx)*sin(theta)+(y3-refy)*cos(theta); + +ax4=refy+(x4-refx)*cos(theta)-(y4-refy)*sin(theta); +ay4=refy+(x4-refx)*sin(theta)+(y4-refy)*cos(theta); +rectangle(100,150,150,100); +line(ax1,ay1,ax2,ay2); +line(ax2,ay2,ax3,ay3); +line(ax3,ay3,ax4,ay4); +line(ax4,ay4,ax1,ay1); + + +} \ No newline at end of file