作者tkcn (小安)
看板java
标题Re: [问题] Android绘图
时间Fri Aug 19 23:09:05 2011
※ 引述《fatalcord (QQ)》之铭言:
: 标题: [问题] Android绘图
: 时间: Fri Aug 19 21:52:39 2011
:
: 最近在作雷达相关的程式开发
: 目前只做到从雷达收0~180度的物体距离资讯到手机
: 我的目标是在萤幕上订定一个固定点作为座标原点
: 依据所得的距离资讯
: 在0~180度的位置各别依据其距离绘点
: 并把这些点连起来
: 有找了关於2D二维图形的资料来看
: 但是不晓得该从何下手
: 不知道板上有没有人做过相关程式的
: 可否提供一些意见或是网站资料作为参考
:
: 由衷感谢
:
: --
: → fatalcord:其实我的问题是该如何定义一个固定点作为极座标原点 08/19 22:00
: → fatalcord:再依照各点的半径r以及角度绘制出图形 08/19 22:02
: → fatalcord:或是用直角座标表示也可以 08/19 22:05
这问题应该没有你想像中难才是。
假设你已经有每一个角度 theta 的距离 dis,
其对应到直角座标系的座标就是 x = dis*cos(theta), y = dis*sin(theta)
(请注意你内心中的直角座标系 x,y 所指方向,是否跟萤幕上的相同)
(中间还有事情要做,我写在更下面)
然後根据这些座标,画一个多边形出来就可以了。
光做到上面还不够,因为此时雷达的中心会被画在 (0,0),
也就是多边形会有一大半根本画在萤幕外,只能显示其中 90 度。
所以你要做个平移 (offset),把雷达中心点移到画面正中央。
再来就是多边形的大小,
实际上你最好事先想清楚,
一个单位距离对应到萤幕应该是多少像素,
在 "平移" 之前将 x,y 乘上这个比例即可。
这个动作叫作缩放 (scale)。
希望你能彻底把这个问题解决,然後回答这两个问题:
1. 如何做到平移,x, y 分别要加上多少?
2. 为什麽缩放需要在平移之前做?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.114.78.231