=========================www.ayjs.net独家拥有,未经许可,不许转载,违者追究法律责任
简单的引入:点的平移与转换
System.Window.Point类的 Offset方法
例如起始点10,30,offset(125,150)就变成135,180了
DEMO1:界面上个放个按钮和一个canvas
<Window x:Class="WpfApplication3.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:WpfApplication3"
mc:Ignorable="d"
Title="AY绘图基础" Height="420" Width="600" Loaded="Window_Loaded" WindowStartupLocation="CenterScreen">
<Grid>
<Button x:Name="btnmove" Content="平移" Click="btnmove_Click" Width="80" Height="30" VerticalAlignment="Top" HorizontalAlignment="Left"/>
<Canvas x:Name="canvas" Width="400" Height="300" Background="FloralWhite"> </Canvas>
</Grid>
</Window>
后台在窗体初始化的时候,创建一个该两点的连线
Point p_start = new Point(, );
Point p_end = new Point(, );
Line l = new Line();
private void Window_Loaded(object sender, RoutedEventArgs e)
{ l.Stroke = Brushes.Black;
l.StrokeThickness = ;
l.X1 = p_start.X;
l.X2 = p_end.X;
l.Y1 = p_start.Y;
l.Y2 = p_end.Y;
canvas.Children.Add(l);
}
我们通过动画的方式迁移这个点
Storyboard sb = new Storyboard();
private void btnmove_Click(object sender, RoutedEventArgs e)
{
p_end = new Point(10, 30);//重置
p_end.Offset(, );//=>(135,180)
var daX = new DoubleAnimation(p_end.X, new Duration(TimeSpan.FromMilliseconds()));
var daY = new DoubleAnimation(p_end.Y, new Duration(TimeSpan.FromMilliseconds()));
sb.Children.Add(daX);
sb.Children.Add(daY);
Storyboard.SetTarget(daX, l);
Storyboard.SetTarget(daY, l);
Storyboard.SetTargetProperty(daX, new PropertyPath(Line.X2Property));
Storyboard.SetTargetProperty(daY, new PropertyPath(Line.Y2Property));
sb.Begin(this);
}
效果:
我们试试PointAnimationUsingKeyFrames,当然这里line没有point属性,所以不行,我们只能分开x2,y2同时动画了,不能point动画
对了,可能你听过 Cartesian coordinate system 笛卡尔坐标系
OpenGL中规则可能是这样的,而且还有其他坐标系,题外话不讲了
OpenGL使用右手坐标
从左到右,x递增
从下到上,y递增
从远到近,z递增
当然这里我还要介绍一个 Polar coordinate system 极坐标系
这个知识,一般高中学理科的都学过,没记错应该是 选修4-4 坐标系与参数方程
这个概念在做扇形图很重要,定义:
在平面内取一个定点O,叫做极点,自极点O引一条射线叫Ox,叫做极轴,再选一个单位长度,一个角度(通常取弧度)及其正方向(通常逆时针方向),这样就建立了一个极坐标系
设M是平面内任意一点,极点O与点M的距离 |OM|叫做点M的极径,叫做ρ;以极轴Ox为始边,射线OM为终边的叫xOM叫做点M的极角,叫做θ,有序数对(ρ,θ)叫做点M的极坐标
这里的r相当于极径ρ,所以这里关于极坐标和 直角坐标系的转换
r的另一端的坐标就等于 (x,y)=(r cosψ,r sinψ)
所以推导出另外两个公式 p平方=x平方+y平方,tanθ=y/x
(这两个公式过会我们有用)
常用坐标计算
两点间的距离A(x1,y1) B(x2,y2) :根号下( (x2-x1)的平方+(y2-y1)的平方)
原点O距离 根号下(x的平方+y的平方)
中点坐标都是 (二分之(x1+x2),二分之(y1+y2) )
两点间的距离A(x1,y1,z1) B(x2,y2,z2) :根号下( (x1-x2)的平方+(y1-y2)的平方+(z1-z2)的平方)
原点O距离 根号下(x的平方+y的平方+z的平方)
中点坐标都是 (二分之(x1+x2),二分之(y1+y2),二分之(z1+z2))
======================================== AYUI www.ayjs.net AY 杨洋原创编写,请不要转载谢谢===============
弧长,弧度
在数学和物理中,弧度是角的度量单位。它是由国际单位制导出的单位,单位缩写是rad。
定义:弧长等于半径的弧,其所对的圆心角为1弧度。(即两条射线从圆心向圆周射出,形成一个夹角和夹角正对的一段弧。当这段弧长正好等于圆的半径时,两条射线的夹角的弧度为1)。
初中时候:弧长=nπr/180,在这里n就是角度数,即圆心角n所对应的弧长
特殊弧长,也就是弧度除以180后乘以π
根据定义,一周的弧度数为2πr/r=2π,360°角=2π弧度,因此,1弧度约为57.3°,即57°17'44.806'',1°为π/180弧度,近似值为0.01745弧度,周角为2π弧度,平角(即180°角)为π弧度,直角为π/2弧度。
方差越小,数据就越集中在平均数附近,方差越大,这组数据大部分都偏离平均数。
标准差大,说明这组数据离散程度大,越小,说明离散程度小。
======================================== AYUI www.ayjs.net AY 杨洋原创编写,请不要转载谢谢===============