问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何画椭圆啊!有哪位高手指教一下.

发布网友 发布时间:2022-04-25 14:49

我来回答

4个回答

热心网友 时间:2023-10-09 22:53

Visual Basic 6.0 画
Dim g_temp_pt0(2) As Double
Dim g_temp_pt1(2) As Double
Dim g_temp_pt2(2) As Double
Dim g_click_size As Integer
Dim len_val As Double
Dim g_cur_tool As Long

Private Sub Command1_Click()
MicroDrawOcx1.UseEvents = 1
g_cur_tool = 501
g_click_size = 0
End Sub

Private Sub MicroDrawOcx1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
If g_cur_tool = 501 Then '画椭圆
If g_click_size = 0 Then
MicroDrawOcx1.GetSnapPoint g_temp_pt0(0)
g_click_size = g_click_size + 1
ElseIf g_click_size = 1 Then
MicroDrawOcx1.GetSnapPoint g_temp_pt1(0)
g_click_size = g_click_size + 1
ElseIf g_click_size = 2 Then
MicroDrawOcx1.GetSnapPoint g_temp_pt2(0)
g_click_size = g_click_size + 1
MicroDrawOcx1.CreateEllipseBy3pt g_temp_pt0(0), g_temp_pt0(1), g_temp_pt1(0), g_temp_pt1(1), g_temp_pt2(0), g_temp_pt2(1)
MicroDrawOcx1.RubberReset
MicroDrawOcx1.RedrawAll
g_click_size = 0
End If
End If
End Sub

Private Sub MicroDrawOcx1_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)

ElseIf g_cur_tool = 501 Then
If g_click_size = 1 Then
MicroDrawOcx1.GetSnapPoint g_temp_pt1(0)
len_val = MicroDrawOcx1.GetLineLength(g_temp_pt0(0), g_temp_pt0(1), g_temp_pt1(0), g_temp_pt1(1))
MicroDrawOcx1.DrawBegin
MicroDrawOcx1.DrawCircle g_temp_pt0(0), g_temp_pt0(1), len_val
MicroDrawOcx1.DrawEnd
End If
MicroDrawOcx1.GetSnapPoint g_temp_pt2(0)
If g_click_size = 2 Then
MicroDrawOcx1.DrawBegin
MicroDrawOcx1.DrawEllipse g_temp_pt0(0), g_temp_pt0(1), g_temp_pt1(0), g_temp_pt1(1), g_temp_pt2(0), g_temp_pt2(1)
MicroDrawOcx1.DrawEnd
End If
End If
End Sub

-Delphi 7.0
...
procere TForm1.Button1Click(Sender: TObject);
begin
microdrawocx1.UseEvents:=1;//打开鼠标事件
ptsize := 0;
end;

procere TForm1.Button2Click(Sender: TObject);
begin
microdrawocx1.UseEvents:=0;//关闭鼠标事件
end;

procere TForm1.MicroDrawOcx1MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
setlength(pt,2);
ptsize:=ptsize+1;
case ptsize of

1 : microdrawocx1.GetCurPoint(pt[0],1);//点击第一点所得到的坐标
2 : microdrawocx1.GetCurPoint(pt1[0],1);//点击第二点所得到的坐标
end;
if ptsize =2 then
begin
microdrawocx1.RubberReset();//重新设置橡皮条
microdrawocx1.CreateCircle(pt[0],pt[1],rad);//创建圆
microdrawocx1.RedrawAll();//刷新
ptsize:=0;
end;
end;

procere TForm1.MicroDrawOcx1MouseMove(Sender: TObject;
Shift: TShiftState; X, Y: Integer);
begin
setlength(pt1,2);
if ptsize =1 then
begin
microdrawocx1.GetCurPoint(pt1[0],1);//点击第一点后捕捉到的当前点
rad:=microdrawocx1.GetLineLength(pt[0],pt[1],pt1[0],pt1[1]);//得到椭圆得长半径
microdrawocx1.DrawBegin();//开始画圆
microdrawocx1.DrawCircle(pt[0],pt[1],rad);//画圆橡皮条
microdrawocx1.DrawEnd();//结束画圆
end;
end;

end.

第一种画椭圆的方法如图1所示,先画出两条平行线,标上刻度,再利用对应x→1/x的直线,例如1→1、2→0.5、3→0.33、4→0.25、5→0.2、10→0.1,就可以形成椭圆包络线。这两条平行线距离越远,椭圆就越长。如果能找到适当的线距,以及相对应的刻度,也可以形成一个圆形。请研究一下。

第二种方法是把椭圆放入一个长方形。画出一个长方形ABCD,长是宽的2倍,例如16cm与8cm。再画两条直线ST和VW,把大长方形平均分割成4个小长方形。把直线ST、AD、BC都8等分,并如图2所示加以标示。

由W经过OS上标示为1的点画一条直线,由V与AS上标示为1’的点连一条直线。这两条直线的交点就是椭圆上的一点。

接着,由W经过OS上标示为2的点,以及由V与AS上标示为2’的点,分别画出直线。同样地,这两条直线的交点也会在椭圆上。继续以这种方式完成各象限的直线,然后用平滑的曲线连接各个交点。

由于长方形的长宽比例以及等分的点数使得直线的数目很少,因此以少数交点就难以精确绘出椭圆形。但如果等分点太多,也容易出错。

第三种方法需要用到三角板。先画出一个大圆(如半径5cm),并在接近圆周的位置画上一点A,如图3所示。然后把三角板放在纸上,使三角板的直角刚好在圆周上,其中一边要与A点接触,顺着另一边画出一条弦PQ。移动三角板到许多不同位置,保持直角的一边接触A点而且直角在圆周上,你很快就可以发现一条椭圆包络线正逐渐成形。

完成一个椭圆形之后,试着把A点放在不同位置,看看结果如何。A是椭圆的焦点。另一个焦点在哪里?

第四种方法是用圆来形成椭圆包络线,如图4所示。画出一个圆,如直径5cm。画一条直径AOB,再每隔1cm画出垂直于AOB的弦。然后取其中一条弦PQ,以其中心R为圆心画圆,并通过 P点和 Q点(即PQ为这个圆的直径)。以同样的方式用其他垂直的弦为直径画圆,最后就会出现一个能令你满意的椭圆形。

以靠近A和B的弦为直径所画出的圆,会完全在椭圆形之内,因此它们不属于包络线的一部分。

http://cache.baidu.com/c?word=%BB%AD%3B%CD%D6%D4%B2%3B%B5%C4%3B%B7%BD%B7%A8&url=http%3A//ced%2Exxjy%2Ecn/RESOURCE/CZ/CZSX/SXBL/SXTS1062/5638%5FSR%2EHTM&b=0&a=56&user=

热心网友 时间:2023-10-09 22:53

如果是象数学里学的画椭圆很复杂,在实际操作中,只要用四个铁钉,钉在你需要画椭圆的范围内2厘米的位置,成菱形,然后用一条线饶住四个铁钉,线的长度比椭圆小,比四个铁钉的周长大,具体的大小用一根铅笔沿着线画一圈,刚好在你要画的椭圆的设计区间,然后画线,就成了一个你想要的椭圆。
你试试,又可以任意调节大小,这是木工在画椭圆用的,方便快捷。

热心网友 时间:2023-10-09 22:54

拿两根大头针一根棉线(没什么弹性的线)一枝笔.

用棉线做一个"圈",它的周长等于你要画的椭圆的长径减去两个焦点的距离.

把两个大头针钉在椭圆的两个焦点处,把棉线圈套在两根大头针上,放到平面,把笔尖也套进圈内,并用笔尖拉紧线圈.

移动笔在平面上画,就能画出你需要的椭圆了.

热心网友 时间:2023-10-09 22:55

找几何书,里面有详细的介绍。高中的几何书里就讲过。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
悲观的意思是什么悲观是什么意思 ...坐立不安的。还总想挠挠手呀、胳膊什么的。这是怎么回事啊?是一种... ...胳膊肘麻,有时会麻到感觉大拇指根部疼,食指也有点... ...入睡感觉左胳膊从手腕到肩膀酥溜溜的酸,睁开眼又好了,什么原因... 胳膊上麻溜溜的 像是有小疙瘩 还很痒 有点硬 少量蔗糖,食盐,食油,食醋分别倒入一定量水中,并用筷子不断搅拌,观察... 将食盐 蔗糖 泥土 植物油与水混合 英文会计的provision对应中文会计的哪个词啊? 双人旁一个直一个心念什么,什么意思 白瓷有隙是成语吗 怎么用python.turtle画两个同焦点不同大小椭圆(竖的椭圆) 如何用Python计算椭圆的中心点,请写下代码 诊股软件有没有用 通达信上有没有 大智慧上的模拟k线 功能 科大讯飞股票诊股手机 老师帮助写个macd周线金叉 在主图红箭头提示公式 大智慧 飞狐通达信都行 谢谢 什么诊股软件好? 我想请教怎样可以用大智慧查看到前几年的60分钟k线图?软件上显示的只有最近3个月的数据 小智诊股是哪个手机炒股软件里的? 分时金叉 我的大智慧只能看一个月左右的5分钟k线图,怎样才能看得更多? 十五分钟金叉,三十分钟金叉?十五分钟死叉,三十分钟死叉? 求高手写一个通达信60分钟MACD金叉的条件预警公式!谢谢! 指南针诊股神器是真的吗 有好的诊股软件推荐吗? 当不同周期的均线交叉时出现提示,举例:当5分钟的K线图上,均5交叉均10时,而在3分钟图上同时出现提示 电脑键盘上打@怎么打? 宜昌到三峡大坝怎么走 三峡大坝有多厚? 中信银行要多少钱才能开户 急!!画椭圆!!! 如何正确快速的画椭圆 Python如何画cos和sin的图啊? 西点中bf是高筋粉的简写么 bf西点行业代表什么 “BF”是什么意思? 在英语中“BF”是什么意思? bf有几种解释? 网络术语BF是什么意思? c.f,在西点代表什么 lol中bf是什么意思 现在网络语言中的“BF”是什么意思? 请问:谁知道在纸张的规格中BF是什么意思? lol中bf是什么意思,LOL是什么意思,lol是"laughingoutloud 钢结构中bf是什么意思 在同性恋亚文化中,BF指什么 不锈钢304BF,中的BF是什么意思 电气图中bf是什么意思 lol台服无法使用此地区登陆是什么意思? 无法使用此区域的帐户登录