作者fatalcord (QQ)
看板java
标题Re: [问题] Android绘图
时间Sat Aug 20 10:40:27 2011
※ 引述《tkcn (小安)》之铭言:
: 这问题应该没有你想像中难才是。
: 假设你已经有每一个角度 theta 的距离 dis,
: 其对应到直角座标系的座标就是 x = dis*cos(theta), y = dis*sin(theta)
: (请注意你内心中的直角座标系 x,y 所指方向,是否跟萤幕上的相同)
: (中间还有事情要做,我写在更下面)
: 然後根据这些座标,画一个多边形出来就可以了。
: 光做到上面还不够,因为此时雷达的中心会被画在 (0,0),
: 也就是多边形会有一大半根本画在萤幕外,只能显示其中 90 度。
: 所以你要做个平移 (offset),把雷达中心点移到画面正中央。
: 再来就是多边形的大小,
: 实际上你最好事先想清楚,
: 一个单位距离对应到萤幕应该是多少像素,
: 在 "平移" 之前将 x,y 乘上这个比例即可。
: 这个动作叫作缩放 (scale)。
: 希望你能彻底把这个问题解决,然後回答这两个问题:
: 1. 如何做到平移,x, y 分别要加上多少?
: 2. 为什麽缩放需要在平移之前做?
我先前的想法是将画面分割成两块,
一半显示极座标表示的图形,另一半显示直角座标的图形
我的想法是先取得萤幕的宽度,并在1/4及3/4宽度的地方标是两点
分别作为两座标轴的原点
坐标轴转换没有太大的问题
问题在於极座标上的绘图
因为就我所知,Android的画面是以直角座标XY所定义的
因此今天如果要如何单以半径及角度绘图变成了我最大的问题
JAVA还在学习阶段,之前也没接触过绘图相关的东西
烦请就极座标方面的绘图能否再提供一些建议
谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.40.159.25
1F:推 LPH66:极座标转直角座标是高中数学的范围喔~ 08/20 11:46
2F:→ lachtchlee:全华 Java电脑绘图list price 280 2005/4 260 pages 08/20 11:53
3F:→ lachtchlee:内有 贝兹曲线 B-Spline Curve evolute etc. 08/20 11:56
4F:推 chchwy:你的问题上一篇不就有解答了吗XD 08/20 12:41
5F:推 ericinttu:先练一下数学, sin, cos, tan, cot 08/20 13:28
6F:→ lachtchlee:不要随意贬人 08/20 13:33
7F:→ fatalcord:还是在解释一下好了,我的问题不在於座标轴转换 08/20 13:34
8F:→ fatalcord:在於如何以得到的半径及角度,用哪个"函式"或方法绘图 08/20 13:36
9F:→ fatalcord:谢谢二楼提供参考书籍,我会去找来看看的 08/20 13:38
10F:推 ericinttu:需要的东西不需要学起来吗? 08/20 18:24
11F:→ sbrhsieh:是国中数学~~ 08/21 20:25
12F:推 lachtchlee:做雷达程设的人 数学绝对比楼上两位高明 08/23 19:47
13F:→ sbrhsieh:何以见得?! 08/23 20:09
14F:推 lachtchlee:他懂Markov chain 我同他通过电话 08/23 20:37