假设圆心在(0,0)半径为0.5的圆。现有坐标(x,y),如何判断坐标是不是在圆内或圆上?有啥好公式吗?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了假设圆心在(0,0)半径为0.5的圆。现有坐标(x,y),如何判断坐标是不是在圆内或圆上?有啥好公式吗?相关的知识,希望对你有一定的参考价值。

假设圆心在(0,0)半径为0.5的圆。现有坐标(x,y),如何判断坐标是否在圆内或圆上?有什么好公式吗?

参考技术A 如果x^2 + y^2 < 0.5^2,那么(x,y)在圆内
如果x^2 + y^2 = 0.5^2,那么(x,y)在圆上
如果x^2 + y^2 > 0.5^2,那么(x,y)在圆外本回答被提问者采纳
参考技术B 用点到圆点的距离来算,因为圆心是(0,0)所以公式:[(X-0)^2+(Y-0)^2]开根号 这个值计算出来
若值=0.5(半径)则在圆上; 若值小于0.5 则是在圆内,若大于0.5则在圆外
参考技术C 圆的定义就是平面上到一个固定点的定义等于一个定植的所有点的集合
在你这个问题里就是0.5 那么所有离原点大于0.5的点都在圆外 所有小于0.5的点都在圆内

所以计算(x,y)到(0,0)的距离(x^2+y^2)
如果大于0.5就在圆外
小于0.5就在圆内
参考技术D x^2+y^2如果等于0.5^2,则在圆上;小于则在圆内,大于则在圆外。 第5个回答  2008-10-29 假设圆心在(0,0)半径为0.5的圆。现有坐标(x,y),如何判断坐标是否在圆内或圆上?有什么好公式吗?
悬赏分:50 - 离问题结束还有 14 天 23 小时
假设圆心在(0,0)半径为0.5的圆。现有坐标(x,y),如何判断坐标是否在圆内或圆上?有什么好公式吗?

用距离公式,点到圆心距离d与半径大小比较,想当与d平方与半径平方比较:
d^2=x^2+y^2,
d^2>0.25在圆外,
d^2<0.25在圆内,
d^2=0.25在圆周上.

WPF 透视相机的UpDirection(向上方向)

原文:WPF 透视相机的UpDirection(向上方向)

透视相机的updirection,是具有三个参数的的属性(X,Y,Z),不过Z属性是没有作用的。

也就是说这一个立体中的平面坐标系。

那么X,Y是什么呢?

我们知道在X,Y坐标轴系内单位圆上的点,都是可以用的cosX,sinY来表示。

网上找的图

技术图片

 

 

假设,XY坐标系内画一个直径为1的圆(圆心[0,0])

确定好圆上的点连接圆心之后和Y轴之间的夹角之后再用反三角函数求出角度即可

比如说我用sin函数

当确定X,Y值后,点连接圆心,长度为1,圆心角的对边长度为X坐标,斜边长度为1(不知道为什么直接写1不好使,必须用勾股定理求一下斜边),之后再arcsin函数转角度就好了。

转换器

技术图片
 class MC : IMultiValueConverter
    {
        public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
        {
            var v = Activator.CreateInstance(targetType,values);
            return v;
       //     throw new NotImplementedException();
        }

        public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
        {
            throw new NotImplementedException();
        }
    }
    class Deg : IMultiValueConverter
    {
        public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
        {
            double a = double.Parse(values[0].ToString());
            double b = double.Parse(values[1].ToString());
            var d = Math.Sqrt(a * a + b * b);
            Debug.WriteLine(d);
            var c = (Math.Asin(a/d )/Math.PI) * 180.0;
            return c.ToString();
        }

        public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
        {
            throw new NotImplementedException();
        }
    }
技术图片

 

 

技术图片
<Window.Resources>
        <local:MC x:Key="mc"/>
        <local:Deg x:Key="dc"/>
    </Window.Resources>
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition/>
            <RowDefinition/>
        </Grid.RowDefinitions>
        <Viewport3D>
            <Viewport3D.Camera>
                <PerspectiveCamera Position="0,0,10"   LookDirection="0,0,-10">
                    <PerspectiveCamera.UpDirection>
                        <MultiBinding  Converter="{StaticResource mc}">
                            <Binding ElementName="s1" Path="Value"/>
                            <Binding ElementName="s2" Path="Value"/>
                            <Binding ElementName="s3" Path="Value"/>
                        </MultiBinding>
                    </PerspectiveCamera.UpDirection>
                </PerspectiveCamera>
            </Viewport3D.Camera>
            <ModelVisual3D>
                <ModelVisual3D.Content>
                    <DirectionalLight Color="White" Direction="-1,-1,-1"/>
                </ModelVisual3D.Content>
            </ModelVisual3D>
            <ModelVisual3D>
                <ModelVisual3D.Content>
                   
                    <GeometryModel3D>
                        <GeometryModel3D.Geometry>
                            <MeshGeometry3D Positions="-1,0,0  0,1,0  1,0,0" TriangleIndices="0,2,1"/>
                        </GeometryModel3D.Geometry>
                        <GeometryModel3D.Material>
                            <DiffuseMaterial Brush="Red"   />
                        </GeometryModel3D.Material>
                    </GeometryModel3D>
                </ModelVisual3D.Content>
            </ModelVisual3D>
        </Viewport3D>
        <Grid Grid.Row="1">
            <Grid.ColumnDefinitions>
                <ColumnDefinition/>
                <ColumnDefinition/>
            </Grid.ColumnDefinitions>
            <StackPanel >
                <Slider LargeChange="0.1" Maximum="1" Minimum="-1" Value="{Binding ElementName=c1, Path=Text,UpdateSourceTrigger=PropertyChanged}" x:Name="s1"/>
                <Slider  LargeChange="0.1" Maximum="1" Minimum="-1" Value="{Binding ElementName=c2, Path=Text,UpdateSourceTrigger=PropertyChanged}" x:Name="s2"/>
                <Slider Maximum="10" Minimum="-10" Value="0" x:Name="s3"/>
              
            </StackPanel>
            <StackPanel Grid.Column="1">
                <TextBlock Text="{Binding ElementName=s1,Path=Value}"/>
                <TextBlock  Text="{Binding ElementName=s2,Path=Value}"/>
                <TextBlock Text="{Binding ElementName=s3,Path=Value}"/>
                <TextBlock >
                    <TextBlock.Text>
                        <MultiBinding Converter="{StaticResource dc}">
                            <Binding ElementName="s1" Path="Value"/>
                            <Binding ElementName="s2" Path="Value"/>
                        </MultiBinding>
                    </TextBlock.Text>
                </TextBlock>
                <TextBox x:Name="c1"/>
                <TextBox  x:Name="c2"/>
            </StackPanel>
        </Grid>
    </Grid>
技术图片

 

值得注意的是 这个是旋转的是摄像机旋转,物体是不动的,也就是左右方向是反的。

最后上传

其他软件的对照角度和XY坐标,可以自己验证一下

技术图片

 

以上是关于假设圆心在(0,0)半径为0.5的圆。现有坐标(x,y),如何判断坐标是不是在圆内或圆上?有啥好公式吗?的主要内容,如果未能解决你的问题,请参考以下文章

python语言编程

以原点为中心,半径为 r 的圆内/沿快速整数坐标

圆心坐标怎么求的

51Nod1278 相离的圆

霍夫圆检测

优雅的点