社区
J2ME
帖子详情
如何绘制斜矩形
zhftxj
2011-10-08 05:53:24
绘制斜矩形,并且能得到这个斜矩形的面积..
各位大侠,给个思路与做法...
在此谢谢
...全文
255
9
打赏
收藏
如何绘制斜矩形
绘制斜矩形,并且能得到这个斜矩形的面积.. 各位大侠,给个思路与做法... 在此谢谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zhftxj
2011-10-13
打赏
举报
回复
这是平行四边行的算法吧....
要斜矩形
shine333
2011-10-13
打赏
举报
回复
j2me好久没用,不知道java2d的API能不能用,
参考j2dk里面java.awt.geom.AffineTransform.getShearInstance(double, double)
天空龙
2011-10-13
打赏
举报
回复
要我怎么说你,就几条数学计算公式,自己解决吧。
天空龙
2011-10-10
打赏
举报
回复
import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Graphics;
public class DrawTool extends Canvas{
protected void paint(Graphics g) {
g.setColor(0x000000);
try {
drawPAR(10, 10, 40, 10, 30, 30, g);
System.out.println(this.getArea(10, 10, 40, 10, 30, 30));
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
/**
* 获取平行四边形面积
* @param x1 起始点的X坐标
* @param y1 起始点的Y左边
* @param x2 右上角的X坐标
* @param y2 右上角的Y坐标
* @param x3 右下角的X坐标
* @param y3 右下角的Y坐标
* @return 菱形面积
*/
public int getArea(int x1,int y1,int x2,int y2,int x3,int y3){
int v = distPointToLine(y3,y3,10,10,40,10); //垂直线
int base = distPointToPoint(x1, y1, x2, y2); //底边
return v*base;
}
/**
* 绘制平行四边形
* @param x1 起始点的X坐标
* @param y1 起始点的Y坐标
* @param x2 右上端点的X坐标
* @param y2 右上端点的Y坐标
* @param x3 右下端点的X坐标
* @param y3 右下端点的Y坐标
* @param g 画笔
* @throws IllegalAccessException
*/
public void drawPAR(int x1,int y1,int x2,int y2,int x3, int y3,Graphics g) throws IllegalAccessException{
float k = (y2 - y1)/(float)(x2 - x1);
float k1 = (y3 - y2)/(float)(x3 - x2);
if(k == k1)
throw new IllegalAccessException();
g.drawLine(x1, y1, x2, y2);
g.drawLine(x2, y2, x3, y3);
int x4 = x1 - x2 + x3;
int y4 = y1 - y2 + y3;
g.drawLine(x1, y1, x4, y4);
g.drawLine(x4, y4, x3, y3);
}
/**
* 获取点到直线的距离
* @param x0 点的X坐标
* @param y0 点的Y坐标
* @param x1 直线的起始点X坐标
* @param y1 直线的起始点Y坐标
* @param x2 直线的终点的X坐标
* @param y2 直线的终点的Y坐标
* @return
*/
public int distPointToLine(int x0, int y0, int x1, int y1, int x2, int y2)
{
int A = y2 - y1;
int B = x1 - x2;
int C = x2*y1 - x1*y2;
return Math.abs(A*x0 + B*y0 + C) / distPointToPoint(x2,y2,x1,y1);
}
/**
* 获取点到点的距离
* @param x1 起始点的X坐标
* @param y1 起始点的Y坐标
* @param x2 终点的X坐标
* @param y2 终点的Y坐标
* @return
*/
private int distPointToPoint(int x1,int y1,int x2,int y2) {
int dx = Math.abs(x1 - x2);
int dy = Math.abs(y1 - y2);
return sqrt((dx*dx + dy*dy));
}
double Sqrt(double d)
{
double tolerance = 0.00001;
double x, nx = 0.0;
if(d < tolerance) return 0.0;
x = d;
while(true) {
nx = 0.5 * (x + d / x);
if(Math.abs(x - nx) < tolerance) break;
x = nx;
}
return nx;
}
public int sqrt(int n) {
int r, l, t; //r: 方根; l: 余数; t: 试除数;
if (n < 100) {
r = 9;
while (n < r * r)
r--;
} else {
r = sqrt(n / 100);
l = n - r * r * 100;
t = l / (r * 20);
while (t * (r * 20 + t) > l) {
t--;
}
r = r * 10 + t;
}
return r;
}
}
zhftxj
2011-10-10
打赏
举报
回复
没有解决办法嘛?
各位没有遇到过这类逻辑嘛?
wtc860104
2011-10-09
打赏
举报
回复
j2me绘图啥的不熟悉具体实现。不过你这个问题可以用坐标来实现。中学学过坐标吧?一次函数直线y=kx+b
你这个斜矩形是神马东西?我只知道平行四边形和矩形。平行四边形是两组平行直线围城的。这两组的斜率k不同
但是每组的两条直线是k相同b不同。面积的话,你可以把其中三个点的坐标算出来,然后用海伦公式一套,得出的值再乘2就是平行四边形的面积。至于矩形神马的就是这两组k相乘等于-1
esionxiao
2011-10-09
打赏
举报
回复
画线条不就好咯
zhftxj
2011-10-09
打赏
举报
回复
有莫有知道的啊...
帮个忙
zhftxj
2011-10-09
打赏
举报
回复
drawRectangle(150, 100, 200, 200)
这是SWT中绘制方法,绘制出, x,y点,然后宽高
我想要实现在就是把这个图形斜,并且得到这个图形的面积 SWT中没有处理这种图形...
只能自己重新想办法了...还没有思路...
c#
绘制
3D可旋转旋转
矩形
3D
矩形
旋转,GDI+,另类的设计,以便不时之需。
matlab实现运动目标检测与最小外接
矩形
框
绘制
资源中包含了两个m文件。...minboundrect.m用于
绘制
运动目标的最小外接
矩形
框,可任意设置最小外接
矩形
框的角度。 本人做的是视频中运动车辆的检测,读者可自行更换检测算法以及参数调整以匹配不同的运动场景。
PowerBI系列之SVG绘图专题
SVG
矩形
、圆形和椭圆3. SVG线条和多边形4. SVG文本和图片5. SVG
绘制
路径6. SVG其他知识7. SVG动画基础8. &...
绘制
旋转
矩形
以及旋转
矩形
的碰撞检测(基于BCGCBPro)
鼠标划出一条直线,根据直线
绘制
矩形
,(
绘制
的
矩形
会跟随直线的位置倾
斜
)
绘制
完毕后,鼠标移动可以碰撞检测
绘制
出来的
矩形
Cesium动态
绘制
面,线,点.vue
c
J2ME
13,100
社区成员
26,495
社区内容
发帖
与我相关
我的任务
J2ME
Java J2ME
复制链接
扫一扫
分享
社区描述
Java J2ME
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章