C# 25Dpoint ,做一个备份
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;namespace _25Dpoint
{public partial class Form1 : Form{public Form1(){InitializeComponent();}private void Form1_Paint(object sender, PaintEventArgs e){ Graphics g = this.CreateGraphics(); SolidBrush brushBlack = new SolidBrush(Color.Black);g.DrawLine(Pens.Black, 200, 0, 200, 400); //画出直角坐标系的x,y轴g.DrawLine(Pens.Black, 0, 200, 400, 200);float x1 = 20, y1 = 180; //假设黑点的坐标为20,180 (这个坐标数字是WIN屏幕的坐标,从直角坐标系到WIN屏幕坐标系是不同的,需要转换一下)Point winpoint1 = screen_point(x1, y1); //直角坐标系到WIN屏幕坐标系g.DrawString(winpoint1.X.ToString() + "," + winpoint1.Y.ToString(), Font, brushBlack, winpoint1.X, winpoint1.Y); //显示字符串g.FillEllipse(brushBlack, winpoint1.X, winpoint1.Y, 5, 5); //显示点float x2 = (float) (x1 * Math.Cos(-45) - y1 * Math.Sin(-45)); //坐标转轴公式 顺时针转45度float y2 = (float) (x1 * Math.Sin(-45) + y1 * Math.Cos(-45)); Point winpoint2 = screen_point(x2, y2);g.FillEllipse(brushBlack, winpoint2.X, winpoint2.Y, 5, 5); //显示字符串g.DrawString(winpoint2.X.ToString() + "," + winpoint2.Y.ToString(), Font, brushBlack, winpoint2.X, winpoint2.Y); //显示转换后的点}public Point screen_point(float cartX, float cartY){Point screenpoint = new Point();screenpoint.X = (int) cartX + ( 400/2 );screenpoint.Y = (400/2) - (int)cartY;return screenpoint;}}
}