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])
结果为:
如果问题得到解决请点 采纳~~本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 2无用
悬赏问题
- ¥15 如何解决蓝牙通话音频突发失真问题
- ¥15 安装opengauss数据库报错
- ¥15 【急】在线问答CNC雕刻机的电子电路与编程
- ¥60 在mc68335芯片上移植ucos ii 的成功工程文件
- ¥15 笔记本外接显示器正常,但是笔记本屏幕黑屏
- ¥15 Python pandas
- ¥15 蓝牙硬件,可以用哪几种方法控制手机点击和滑动
- ¥15 生物医学数据分析。基础课程就v经常唱课程舅成牛逼
- ¥15 云环境云开发云函数对接微信商户中的分账功能
- ¥15 空间转录组CRAD遇到问题