• 图形的基本对称


    1.关于任意平行于x轴直线图像的对称

    2.关于任意平行于y轴直线图像的对称

    3.关于任意点的对称

    4.关于直线y=x对称

    5.关于直线y=-x对称

    编译器:vs2013

      1 // x对称.cpp : 定义控制台应用程序的入口点。
      2 //
      3 
      4 #include "stdafx.h"
      5 #include<stdio.h>
      6 #include"graphics.h"
      7 #include<stdlib.h>
      8 
      9 //函数声明
     10 void SymmetricalY(int a[], int y);//关于x的直线对称
     11 void SymmetricalX(int a[], int x);//关于y的直线对称
     12 void Symmetricalxy(int a[], int x, int y);//关于随机点对称
     13 void Symmetricaly_x(int a[]);//关于y=x对称
     14 void Symmetricaly__x(int a[]);    //关于y=-x对称
     15 
     16 int main()
     17 {
     18     int gdriver = DETECT, gmove;
     19     int a[28] = { 100, 100, 150, 150, 250, 150, 250, 0, 350, 150, 450, 150, 500, 200, 450, 250, 350, 250, 250, 400, 250, 250, 150, 250, 100, 300, 100, 100 };
     20 
     21     //关于x的直线对称
     22     /*int x;
     23     
     24     printf("please input the line x= ");
     25     scanf_s("%d", &x);
     26 
     27     initgraph(&gdriver, &gmove, "");
     28 
     29     drawpoly(14, a);
     30 
     31     SymmetricalX(a, x);*/
     32 
     33     //关于y的直线对称
     34     /*int y;
     35 
     36     printf("please input the line y= ");
     37     scanf_s("%d", &y);
     38 
     39     initgraph(&gdriver, &gmove, "");
     40 
     41     drawpoly(14, a);
     42 
     43     SymmetricalY(a, y);*/
     44 
     45     //关于随机点对称
     46     /*int x, y;
     47 
     48     printf("please inout the point:
    ");
     49     scanf_s("%d%d", &x, &y);
     50 
     51     initgraph(&gdriver, &gmove, "");
     52 
     53     drawpoly(14, a);
     54     Symmetricalxy(a,  x,  y);*/
     55 
     56     //关于y=x对称
     57     /*initgraph(&gdriver, &gmove, "");
     58     drawpoly(14, a);
     59     Symmetricaly_x(a);*/
     60 
     61     //关于y=-x对称
     62     initgraph(&gdriver, &gmove, "");
     63     drawpoly(14, a);
     64     Symmetricaly__x(a);
     65 
     66     system("pause");
     67 
     68     closegraph();
     69 
     70     return 0;
     71 }
     72 
     73 //绕任意x直线对称
     74 void SymmetricalX(int a[], int x)
     75 {
     76     int i,b[28];
     77 
     78     for (i = 0; i < 28; i = i + 2)
     79     {
     80         b[i] = 2 * x - a[i];
     81         b[i + 1] = a[i + 1];
     82     }
     83 
     84     drawpoly(14,b);
     85 }
     86 
     87 //绕任意y直线对称
     88 void SymmetricalY(int a[], int y)
     89 {
     90     int i, b[28];
     91 
     92     for (i = 0; i < 28; i = i + 2)
     93     {
     94         b[i+1] = 2 * y - a[i+1];
     95         b[i] = a[i];
     96     }
     97 
     98     drawpoly(14, b);
     99 }
    100 
    101 //关于某一点对称
    102 void Symmetricalxy(int a[], int x, int y)
    103 {
    104     int i, b[28];
    105 
    106     for (i = 0; i < 28; i = i + 2)
    107     {
    108         //平移至原点
    109         b[i] = a[i] - x;
    110         b[i + 1] = a[i + 1] - y;
    111         //原点的对称变换
    112         b[i] = -b[i];
    113         b[i + 1] = -b[i+1];
    114         //平移回去
    115         b[i] = b[i] + x;
    116         b[i + 1] = b[i + 1] + y;
    117     }
    118 
    119     drawpoly(14, b);
    120 }
    121 
    122 //关于y=x对称
    123 void Symmetricaly_x(int a[])
    124 {
    125     int i, b[28];
    126 
    127     for (i = 0; i < 28; i = i + 2)
    128     {
    129         //交换xy的坐标值
    130         b[i + 1] = a[i];
    131         b[i] = a[i + 1];
    132     }
    133 
    134     drawpoly(14, b);
    135 }
    136 
    137 //关于y=-x对称
    138 void Symmetricaly__x(int a[])
    139 {
    140     int i, b[28];
    141 
    142     for (i = 0; i < 28; i = i + 2)
    143     {
    144         //交换负xy的坐标值
    145         b[i + 1] = -a[i];
    146         b[i] = -a[i + 1];
    147     }
    148 
    149     drawpoly(14, b);
    150 }
  • 相关阅读:
    解决使用gomod后goland导包报红问题
    Golang写文件的坑
    Golang去除字符串前后空格
    Golang通过结构体解析和封装XML
    Golang获取CPU、内存、硬盘使用率
    Golang数组和切片的区别
    Golang修改操作系统时间
    Golang中GBK和UTF8编码格式互转
    Golang中的各种时间操作
    Golang十六进制字符串和byte数组互转
  • 原文地址:https://www.cnblogs.com/cdp1591652208/p/6874109.html
Copyright © 2020-2023  润新知