=========================www.ayjs.net獨家擁有,未經許可,不準轉載,違者追究法律責任express
簡單的引入:點的平移與轉換canvas
System.Window.Point類的 Offset方法動畫
例如起始點10,30,offset(125,150)就變成135,180了this
DEMO1:界面上個放個按鈕和一個canvasspa
<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>
後臺在窗體初始化的時候,建立一個該兩點的連線.net
Point p_start = new Point(150, 150); Point p_end = new Point(10, 30); Line l = new Line(); private void Window_Loaded(object sender, RoutedEventArgs e) { l.Stroke = Brushes.Black; l.StrokeThickness = 2; l.X1 = p_start.X; l.X2 = p_end.X; l.Y1 = p_start.Y; l.Y2 = p_end.Y; canvas.Children.Add(l); }
咱們經過動畫的方式遷移這個點3d
Storyboard sb = new Storyboard(); private void btnmove_Click(object sender, RoutedEventArgs e) {
p_end = new Point(10, 30);//重置 p_end.Offset(125, 150);//=>(135,180) var daX = new DoubleAnimation(p_end.X, new Duration(TimeSpan.FromMilliseconds(1000))); var daY = new DoubleAnimation(p_end.Y, new Duration(TimeSpan.FromMilliseconds(1000))); 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); }
效果:code
咱們試試PointAnimationUsingKeyFrames,固然這裏line沒有point屬性,因此不行,咱們只能分開x2,y2同時動畫了,不能point動畫orm
對了,可能你聽過 Cartesian coordinate system 笛卡爾座標系xml
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 楊洋原創編寫,請不要轉載謝謝===============