当前位置: 首页 > news >正文

C# 计算椭圆上任意一点坐标

已知圆心坐标 (x0,y0),横轴 A(长半轴),竖轴 B(短半轴),角度 a,则圆边上点(x',y')的坐标为:

方法一 :

椭圆半径:

代码如下:

double A = 150; //横轴
double B = 100;//竖轴
double dCA = 30 * Math.PI / 180.0f; // 30度角,角度需要转换为弧度
double R = A * B / Math.Sqrt(Math.Pow(A * Math.Sin(dCA), 2) + Math.Pow(B * Math.Cos(dCA), 2)); //计算对应角度的半径
double x = x0 + R * Math.Cos(dCA);
double y = y0 + R * Math.Sin(dCA);

方法二: 

椭圆方程是: 

求离心角

如下图,已知椭圆的角p,要求主离心角t 。如下图,小圆为椭圆内切,大圆为椭圆外切。虚线除OE外,全为垂线

通过椭圆方程最终可以得到:

根据离心角求椭圆上给定角度的坐标

根据椭圆公式,可得

代码如下:

double A = 150; //横轴
double B = 100;//竖轴
double dCA = 30 * Math.PI / 180.0f; // 30度角, 角度需要转换为弧度
var ecc_angle = Math.Atan2(A * Math.Sin(dCA), B * Math.Cos(dCA));
var x = x0 + A * Math.Cos(ecc_angle);
var y = y0 + B * Math.Sin(ecc_angle);

参考:

 根据角度,求椭圆边上点的坐标_椭圆根据角度计算-CSDN博客

Qt绘图:求圆和椭圆上任意角度点的坐标_qdegreestoradians-CSDN博客

相关文章:

  • 408第二轮复习记录 计算机组成原理(第一章 计算机系统概述)
  • 【高性能服务器】多进程并发模型
  • 【STM32HAL库学习】通信方式:USART、IIC、SPI
  • 如何快速使用JNI
  • Docker在windows上使用vscode远程连接容器
  • 23种设计模式【创建型模式】详细介绍之【单例模式】
  • LabVIEW项目外协时选择公司与个人兼职的比较
  • 工业路由器与家用路由器的区别
  • 4、音视频封装格式---FLV
  • 深度学习之半监督学习:一文梳理目标检测中的半监督学习策略
  • IT专业入门,高考假期预习指南
  • 浅谈前置处理器之用户参数
  • 一文学会LVS:概念、架构、原理、搭建过程、常用命令及实战案例
  • 基于Java微信小程序小说阅读系统设计和实现(源码+LW+调试文档+讲解等)
  • 使用 Vue 实现包含单选框的弹窗功能(附Demo)
  • @angular/forms 源码解析之双向绑定
  • Angular 响应式表单 基础例子
  • ComponentOne 2017 V2版本正式发布
  • css属性的继承、初识值、计算值、当前值、应用值
  • ES6--对象的扩展
  • golang中接口赋值与方法集
  • Leetcode 27 Remove Element
  • Magento 1.x 中文订单打印乱码
  • React Transition Group -- Transition 组件
  • Redis 中的布隆过滤器
  • vue从入门到进阶:计算属性computed与侦听器watch(三)
  • 成为一名优秀的Developer的书单
  • 初探 Vue 生命周期和钩子函数
  • 代理模式
  • 前端技术周刊 2019-01-14:客户端存储
  • 前端面试之CSS3新特性
  • 宾利慕尚创始人典藏版国内首秀,2025年前实现全系车型电动化 | 2019上海车展 ...
  • ​sqlite3 --- SQLite 数据库 DB-API 2.0 接口模块​
  • # Panda3d 碰撞检测系统介绍
  • #pragma multi_compile #pragma shader_feature
  • #pragma once
  • #我与Java虚拟机的故事#连载14:挑战高薪面试必看
  • #我与Java虚拟机的故事#连载16:打开Java世界大门的钥匙
  • (145)光线追踪距离场柔和阴影
  • (175)FPGA门控时钟技术
  • (html5)在移动端input输入搜索项后 输入法下面为什么不想百度那样出现前往? 而我的出现的是换行...
  • (二) Windows 下 Sublime Text 3 安装离线插件 Anaconda
  • (附源码)springboot青少年公共卫生教育平台 毕业设计 643214
  • (一)VirtualBox安装增强功能
  • .NET 8 中引入新的 IHostedLifecycleService 接口 实现定时任务
  • .Net Memory Profiler的使用举例
  • .net mvc 获取url中controller和action
  • .net Stream篇(六)
  • .NET/C# 异常处理:写一个空的 try 块代码,而把重要代码写到 finally 中(Constrained Execution Regions)
  • .Net多线程Threading相关详解
  • @staticmethod和@classmethod的作用与区别
  • [ 手记 ] 关于tomcat开机启动设置问题
  • []FET-430SIM508 研究日志 11.3.31
  • [20180312]进程管理其中的SQL Server进程占用内存远远大于SQL server内部统计出来的内存...
  • [240621] Anthropic 发布了 Claude 3.5 Sonnet AI 助手 | Socket.IO 拒绝服务漏洞