C за начинаещи Чертане на правилен многоъгълник - C за начинаещи

Като цяло, тук кодът изгражда правилен многоъгълник от правилен алгоритъм за изграждане на звезда

C++ код, чертащ обикновен n-gon=============#include #include #include//За работа с графични функции#include//За работа с тригонометрични функции

/* ФУНКЦИЯ ЗА РИСУВАНЕ НА ПРАВИЛЕН N-ЪГЪЛ */vo >n_ugol (int R ,int n ) int a = 0 ; pointtype * p =new pointtype [ n ];//Масив за съхраняване на точкиint x = getmaxx ()/ 2 ;//Поставяне на центъра на многоъгълника по оста x в центъра на екранаint y = getmaxy ()/ 2 ;//Поставяне на центъра на многоъгълника по оста y в центъра на екранаdouble pi = 3.14 ;//Това трябва да е PI//ТОЧКИ ЗА ТЪРСЕНЕ за (int i = 1 ; i n * 2 + 2 ; i ++) if ( i % 2 ) p[ i ]. x = x + R * cos (a * pi / 180); p[i]. y = y - R * sin (a * pi / 180); > a = a + 180 / n; >//ЗАТВАРЯНЕ НА КОНТУР p [ n * 2 + 1 ]. x = p [ 1 ]. х; p [ n * 2 + 1 ]. y = p [ 1 ]. y; moveto ( p [ 1 ]. x , p [ 1 ]. y );// СВЪРЗВАЙТЕ ТОЧКИТЕ ПОСЛЕДОВАТЕЛНО ПРЕСКАЧАЙТЕ ВСЯКА СЕКУНДА for ( i = 1 ; i n * 2 + 2 ; i += 2 ) lineto ( p [ i ]. x , p [ i ]. y );& gt; изтриване [] p ;//Освободете памет> //ФУНКЦИЯ ЗА ВХОДvo >input () int R , n ;//Радиус на описаната окръжност и брой страни на n-ъгълникаcout “RADIUS = “ ; cin>> R; cout “SIDES = “ ; cin>> н n_ugol ( R , n );//Построяване на n-ъгълник според въведените параметри>

vo >main() system("CLS"); int gdriver = ОТКРИВАНЕ, gmode, код на грешка; initgraph (& gdriver, & gmode, “” ); вход(); //Въведете параметри и изградете n-gonсистема (“ПАУЗА”); >=============== Самата същност на тази конструкция на правиленn-ъгълниксе крие в конструкцията на звезда. Най-внимателният читател вероятно ще открие на екрана останки от моето описание на образуването на звезда. Разбира се, тук има изчисление на допълнителни точки, които се изчисляват за върховете на звездата и на теория изобщо не са необходими тук. Но при положение, че нямам добри математически познания, предвид това от което съм започнал, всичко това се обяснява с факта, че ми се оказа по-лесно.

================================= ================================== Някой може да бъде искрено щастлив. Това е, това е, което ви трябва. И ако сте готови, ето вашата наградаНе минаха дори няколко дни, преди да мога да го разбера сам. Шокиран самC++ код Конструиране на правилен многоъгълник. ========================#include #include #include

struct MyPoint; //Нашият тип данни

/*ВЪВЕЖДАНЕ НА ПАРАМЕТРИ И КОНСТРУКЦИЯ НА ПРАВИЛЕН МНОГОГОЛЪН*/vo >input () double n = 5 ;//Брой ъгли на правилен многоъгълникMyPoint *A=new MyPoint [ n + 1 ];//Разпределяне на памет за съхраняване на координати в масива

двойно x = getmaxx()/ 2; //Център на правилен многоъгълник към центъра на екранаdouble y = getmaxy ()/ 2 ; double R = 200 ;//Радиус на описаната окръжностdouble angle = 0 ;//Ъгъл на наклон на правилен многоъгълникdouble i = 0 ;//Брояч на цикли

moveto ( x + R *cos( ъгъл * M _ PI / 180 ), y + R *sin ( ъгъл * M _ PI / 180 )); //Настройте писалката на първата точка на рисуване на правилен многоъгълникза ( i = 0 ; i n ; i ++) A [ i ]. x = x + R *cos( ъгъл * M _ PI /180 );//Запомня всяка следваща координатаxA [ i ]. y = y + R *sin( angle * M _ PI / 180 );//Запомняне на всяка следваща координатаyangle = angle + 360 / n ;//Увеличаване на ъгъла с ъгъла на правилен многоъгълник>

за (i = 0; i n; i ++) lineto (A [i]. x, A [i]. y); //Последователно свързване на всички координати

изтрий[]A ; //Освободете памет>

vo >main () int gd = ОТКРИВАНЕ, gm; initgraph (& gd ,& gm , “” );

вход(); //Въвеждане на параметри и изобразяване

цин. получи(); closegraph(); връщане; >

Време за обяснение В кръг от 360 градуса. В правилния многоъгълник всички ъгли са равни, така че трябва да разделите тези 360 градуса на n ъгъла на n-ъгълника. Ще получим вътрешен ъгъл на многоъгълник Където помним всяка координата, се използва формулата на кръг.

Ако говорим условно, но разбираемо, тогава можем да кажем следното:„Точката (x,y) се движи по окръжността, като спира. Тези спирки се съхраняват в масив. След преминаване на целия маршрут, цикълът приключва.”След като цикълът приключи, можете да свържете всички намерени места едно по едно.

Тези връзки могат да се извършат веднага в първия цикъл, но се препоръчва да ги съхранявате в масив и едва след това да използвате масива (това е така, че изчисленията да не забавят чертежа)

Във формулата, където помним координатите, трябва да преобразуваме от радиани в градуси. За да направите това, имате нужда от(Ъгъл * PI / 180)Тази формула е лесна за намиране в Интернет