matlab编程:已知圆的半径、圆心和圆外一点,求过圆外点画关于圆的切线。感谢各位大家的帮助
11条回答 默认 最新
- A1358722560 2023-03-06 10:00关注
根据要求设计了代码:
% 输入圆的半径、圆心和圆外一点的坐标 r = input('圆的半径为:'); xc = input('圆心横坐标为:'); yc = input('圆心纵坐标为:'); xp = input('点的横坐标为:'); yp = input('点的纵坐标为:'); % 计算圆心到圆外点的距离 d = sqrt((xp - xc)^2 + (yp - yc)^2) length = sqrt(d*d-r*r); %点到圆心的单位向量 U.x=(xc-xp)/d; U.y=(yc-yp)/d; angle = asin(r/d); Q1.x = U.x * cos(angle) - U.y * sin(angle); Q1.y = U.x * sin(angle) + U.y * cos(angle); Q2.x = U.x * cos(-angle) - U.y * sin(-angle); Q2.y = U.x * sin(-angle) + U.y * cos(-angle); % Q1.x = ( Q1.x ) * length+ xp; Q1.y = ( Q1.y) * length + yp; Q2.x = ( Q2.x ) * length+ xp; Q2.y = ( Q2.y ) * length+ yp; theta = 0:pi/100:2*pi; x = r*cos(theta) + xc; y = r*sin(theta) + yc; plot(x, y, 'b-', 'LineWidth', 2); hold on; plot(xp, yp, 'ro', 'MarkerSize', 8, 'LineWidth', 2); plot(Q1.x, Q1.y, 'ro', 'MarkerSize', 8, 'LineWidth', 2); plot(Q2.x, Q2.y, 'ro', 'MarkerSize', 8, 'LineWidth', 2); line([xp,Q1.x],[yp,Q1.y]) line([xp,Q2.x],[yp,Q2.y])
结果为:
如果问题得到解决请点 采纳~~本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥20 机器学习能否像多层线性模型一样处理嵌套数据
- ¥20 西门子S7-Graph,S7-300,梯形图
- ¥50 用易语言http 访问不了网页
- ¥50 safari浏览器fetch提交数据后数据丢失问题
- ¥15 matlab不知道怎么改,求解答!!
- ¥15 永磁直线电机的电流环pi调不出来
- ¥15 用stata实现聚类的代码
- ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
- ¥20 docker里部署springboot项目,访问不到扬声器
- ¥15 netty整合springboot之后自动重连失效