已知:椭圆的长轴端点左边
短轴长度
画椭圆。
clc
clear all
close all
syms x y;
x1=900;%坐标1
y1=720;
x2 = 1144;%坐标2
y2 = 622;
%% 图片参数设置
imgH = 512;% y
imgW = 800;% x
%% 椭圆参数设置
a = sqrt((x1-x2)^2 + (y1-y2)^2)/2;%半长轴
b = 0.5*a;%半短轴 任意认为固定
c = sqrt(a^2-b^2);%半焦距
e = c/a;%离心率(0<e<1),e=0时为圆,e接近椭圆
x0 = (x2 + x1)/2;%椭圆心 x 坐标
y0 = (y2 + y1)/2;%椭圆心 y 坐标
cosTheta = (x1-x2)/sqrt((x1-x2)^2+(y1-y2)^2);
theta = acos(cosTheta);%倾斜角
%% 任意椭圆公式
f = (a^2-c^2*cos(theta)^2)*(x-x0).^2 + (a^2-c^2*sin(theta)^2)*(y-y0).^2 - c^2*sin(2*theta)*(x-x0).*(y-y0) - a^2*b^2 ;
%% 图片
Im2=imread('test.jpg');
ImB=imresize(Im2,[imgH,imgW]);
%% 叠加
imshow(Im2);
hold on
plotIm = ezplot(f,[-1.5*a+x0,1.5*a+x0,-1.5*a+y0,1.5*a+y0,]);
plotIm.Color = 'r';
plotIm.LineWidth = 10;
axis off
saveas(gcf,'result.jpg');
点击查看更多内容
2人点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦