积极答复者
silverlight双曲线图如何实现

问题
答案
-
我没怎么念过书,大学只读了个大专,上Wiki查了一下双曲线的定义:
在数学中,双曲线(希腊语“ὑπερβολή”字面意思是“超过”或“超出”)是定义为平面交截直角圆锥面的两半的一类圆锥曲线。
地址:
http://zh.wikipedia.org/zh-cn/%E9%9B%99%E6%9B%B2%E7%B7%9A
用Path实现的效果:
<UserControl x:Class="SilverlightApplication23.MainPage" 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" mc:Ignorable="d" d:DesignWidth="640" d:DesignHeight="480"> <Grid x:Name="LayoutRoot"> <Path Fill="White" Stretch="Fill" Stroke="Black" HorizontalAlignment="Left" Margin="316.5,28.5,0,25.619" Width="1" UseLayoutRounding="False" Data="M316.5,28.5 L316.5,453.38144"/> <Path Fill="White" Stretch="Fill" Stroke="Black" Height="1" Margin="84,0,88.382,239" VerticalAlignment="Bottom" UseLayoutRounding="False" Data="M121.5,240 L588.11816,240" d:LayoutOverrides="VerticalAlignment"/> <Path Stretch="Fill" Stroke="Black" Height="171.911" HorizontalAlignment="Right" Margin="0,41.5,87,0" VerticalAlignment="Top" Width="205.5" UseLayoutRounding="False" Data="M348,42 C348,42 351.5,231 552.5,211.5"/> </Grid> </UserControl>
当然还可以使用贝塞尔曲线来实现。
线段类型
说明
ArcSegment
在两个点之间创建一条椭圆弧线。
BezierSegment
在两个点之间创建一条三次方贝塞尔曲线。
LineSegment
在两个点之间创建一条直线。
PolyBezierSegment
创建一系列三次方贝塞尔曲线。
PolyLineSegment
创建一系列直线。
PolyQuadraticBezierSegment
创建一系列二次贝塞尔曲线。
QuadraticBezierSegment
创建一条二次贝塞尔曲线。
这些内容你可以查看Silvelright 3中文帮助手册中"图形,动画,媒体"-->"图形"-->"几何图形"这一个章节
帮助文档下载地址:
努力!完成了js解析器,还差一个svg插件,一个绘图程序,做好自己,呵呵~!- 已标记为答案 Min-Hong Tang - MSFT 2010年4月19日 5:04
2010年4月18日 8:16
全部回复
-
我没怎么念过书,大学只读了个大专,上Wiki查了一下双曲线的定义:
在数学中,双曲线(希腊语“ὑπερβολή”字面意思是“超过”或“超出”)是定义为平面交截直角圆锥面的两半的一类圆锥曲线。
地址:
http://zh.wikipedia.org/zh-cn/%E9%9B%99%E6%9B%B2%E7%B7%9A
用Path实现的效果:
<UserControl x:Class="SilverlightApplication23.MainPage" 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" mc:Ignorable="d" d:DesignWidth="640" d:DesignHeight="480"> <Grid x:Name="LayoutRoot"> <Path Fill="White" Stretch="Fill" Stroke="Black" HorizontalAlignment="Left" Margin="316.5,28.5,0,25.619" Width="1" UseLayoutRounding="False" Data="M316.5,28.5 L316.5,453.38144"/> <Path Fill="White" Stretch="Fill" Stroke="Black" Height="1" Margin="84,0,88.382,239" VerticalAlignment="Bottom" UseLayoutRounding="False" Data="M121.5,240 L588.11816,240" d:LayoutOverrides="VerticalAlignment"/> <Path Stretch="Fill" Stroke="Black" Height="171.911" HorizontalAlignment="Right" Margin="0,41.5,87,0" VerticalAlignment="Top" Width="205.5" UseLayoutRounding="False" Data="M348,42 C348,42 351.5,231 552.5,211.5"/> </Grid> </UserControl>
当然还可以使用贝塞尔曲线来实现。
线段类型
说明
ArcSegment
在两个点之间创建一条椭圆弧线。
BezierSegment
在两个点之间创建一条三次方贝塞尔曲线。
LineSegment
在两个点之间创建一条直线。
PolyBezierSegment
创建一系列三次方贝塞尔曲线。
PolyLineSegment
创建一系列直线。
PolyQuadraticBezierSegment
创建一系列二次贝塞尔曲线。
QuadraticBezierSegment
创建一条二次贝塞尔曲线。
这些内容你可以查看Silvelright 3中文帮助手册中"图形,动画,媒体"-->"图形"-->"几何图形"这一个章节
帮助文档下载地址:
努力!完成了js解析器,还差一个svg插件,一个绘图程序,做好自己,呵呵~!- 已标记为答案 Min-Hong Tang - MSFT 2010年4月19日 5:04
2010年4月18日 8:16