zoukankan      html  css  js  c++  java
  • 图形的基本对称

    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 }
  • 相关阅读:
    DataGrip破解,汉化. 再见navicate, 再见sqlyog
    centOS安装JIRA 破解版 亲测
    centOS yum 安装 JDK
    CentOS No manual entry for xxx 没有手册文档
    idea集成JRebel热部署破解
    springboot 拦截器取不到 ajax跨域请求的header参数
    centOS安装ELK
    产品经理的”影响力“
    系统设计的一些心得
    EXIF.Js:读取图片的EXIF信息
  • 原文地址:https://www.cnblogs.com/cdp1591652208/p/6874109.html
Copyright © 2011-2022 走看看