none
silverlight双曲线图如何实现 RRS feed

答案

  • 我没怎么念过书,大学只读了个大专,上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中文帮助手册中"图形,动画,媒体"-->"图形"-->"几何图形"这一个章节

    帮助文档下载地址:

    http://www.microsoft.com/downloads/details.aspx?familyid=0A9773A7-C854-41FA-B73D-535ABFB73BAF&displaylang=zh-cn


    努力!完成了js解析器,还差一个svg插件,一个绘图程序,做好自己,呵呵~!
    2010年4月18日 8:16
    版主

全部回复

  • 双曲线?什么意思?

    两条曲线并列,只是两条线之间有一定的距离吗?

    如果是这样和绘制一条线没有什么区别的。


    BLOG:http://beniao.cnblogs.com MSN:beniao@live.cn
    2010年4月9日 12:51
  • 你好,

          你可以在canvas上进行绘制,canvas的坐标系左上角为原点,你可以吧它内部当做整个的第一象限。

          通过一定的算法,进行原点转换(比如吧500,500当做0,0)。然后根据你自己的公式去绘制双曲线。

    2010年4月16日 7:41
  • 你好,

          你可以在canvas上进行绘制,canvas的坐标系左上角为原点,你可以吧它内部当做整个的第一象限。

          通过一定的算法,进行原点转换(比如吧500,500当做0,0)。然后根据你自己的公式去绘制双曲线。

    2010年4月16日 7:42
  • 我没怎么念过书,大学只读了个大专,上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中文帮助手册中"图形,动画,媒体"-->"图形"-->"几何图形"这一个章节

    帮助文档下载地址:

    http://www.microsoft.com/downloads/details.aspx?familyid=0A9773A7-C854-41FA-B73D-535ABFB73BAF&displaylang=zh-cn


    努力!完成了js解析器,还差一个svg插件,一个绘图程序,做好自己,呵呵~!
    2010年4月18日 8:16
    版主