Ⅰ java怎么转换c语言
Java直接转C的没有。
Java转C#和C++的倒是有软件。(具体用法还要你自己研究)
比如:
1、Java语言转换器助手衔接,这个可以转C#。
2、Octopus的.NET转换器衔接,这个可以转C++或C#。
3、Tangible的Java转C#转换器衔接,有注释,方便学习,需要购买商业版才行。
4、XES的Java转C#转换器衔接,界面简单,容易上手。
5、Varycode工具衔接,在线工具,支持多语言转换(包括VB、Ruby、Python等)。
Ⅱ android中Path类的lineTo方法和quadTo方法画线的区别
android 中path类lineto方法和quadto方法的区别如下:
1. Path--->quadTo(float x1, float y1, float x2, float y2):
该方法的实现是当画弧线时会形成平滑的曲线,该曲线又称为"贝塞尔曲线"(Bezier curve),其中,x1,y1为控制点的坐标值,x2,y2为终点的坐标值;
贝塞尔曲线的形成,就比如我们把一条橡皮筋拉直,橡皮筋的头尾部对应起点和终点,然后从拉直的橡皮筋中选择任意一点(除头尾对应的点外)扯动橡皮筋形成的弯曲形状,而那个扯动橡皮筋的点就是控制点。
2. Path--->lineTo(float x, float y) :
该方法实现的仅仅是两点连成一线的绘制线路,这样,当我们用这个方法绘制曲线时,缺陷就出来了。对比前面quadTo方法lineTo方法绘制的曲线不能形成平滑的弯曲,会出现明显的两点形成一线的突痕。
Ⅲ java如何用描点法绘制双曲线
一个点一个点的画是最简单的。然后用Path2D来画直线。
Path2D.Double path = new Path2D.Double () ;
for (int i = 0 ; i < 100; i ++)
{
double y = f (x) ;
path.lineTo(x, y) ;
// 这里可以用quadTo () ;但要提供差值点。
}
Graphics2D g2 = (Graphics2D) g ;
g.draw (path) ;
补充:quadTo可能就是差值算法,这样你可以减少采样点来达到平滑曲线的效果。另外就是用RanderHint来进行抗锯齿等平滑处理。
Ⅳ java中用画笔画出来的画如何随机生成
g.drawLine(x1,y1,x2,y2); 这是用来画线的,那么那两个点用Math.random()随机生成就行了,其它也是一样的,什么圆啊贝塞尔曲线啊矩形啊之类的都是用点来控制画出来的,那么随机生成那些点就行了。另外还可以随机生成一个0至10的数,0的话画圆,1的话画矩形之类
Ⅳ 怎么求 Java 贝塞尔曲线两点之间的角度
public void test() {
CvPoint controlPoint[] = new CvPoint[4];
controlPoint[0] = new CvPoint(50, 60); //起点
controlPoint[1] = new CvPoint(130, 200); //控制点
controlPoint[2] = new CvPoint(300, 360); //控制点
controlPoint[3] = new CvPoint(400, 600); //终点
int n = controlPoint.length - 1; //
int i, r;
float u;
bezierPoint.clear();
// u的步长决定了曲线点的精度
for (u = 0; u <= 1; u += 0.01) {
CvPoint p[] = new CvPoint[n + 1];
for (i = 0; i <= n; i++) {
p[i] = new CvPoint(controlPoint[i].x, controlPoint[i].y);
}
for (r = 1; r <= n; r++) {
for (i = 0; i <= n - r; i++) {
p[i].x = (1 - u) * p[i].x + u * p[i + 1].x;
p[i].y = (1 - u) * p[i].y + u * p[i + 1].y;
}
}
bezierPoint.add(p[0]);
}
for (CvPoint point : bezierPoint) {
System.out.println(point.x + "," + point.y);
}
}
Ⅵ 求: Java画出---CubicCurve2D.Double cubicCurve2D 三次贝塞尔曲线 的例子。
可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。
Ⅶ java 三次贝塞尔曲线 怎么确定控制点
只是第二点和第三点的坐标而已,肯定有算法。具体看你要实现什么业务。
Ⅷ 求java高手编写下面的程序, 英文的。。。
public static void main(String[] args) {
System.out.println(f(0.0));
System.out.println(f(0.2));
System.out.println(f(0.4));
System.out.println(f(0.8));
System.out.println(f(0.9));
System.out.println(f(1.0));
}
public static double f(double x){
double result = 1 - 2.2499997 * Math.pow(x, 2)
+ 1.2656208 * Math.pow(x, 4)
- 0.3163866 * Math.pow(x, 6)
+ 0.0444479 * Math.pow(x, 8)
- 0.0039444 * Math.pow(x, 10)
+ 0.0002100 * Math.pow(x, 12);
return Math.round(result/0.000001)*0.000001; // 保留六位小数,四舍五入
}
Ⅸ 三次Bezier曲线绘制编程
顺便练一下贝塞尔函数,写了一个applet,每秒钟随机生成4个点展示效果。
满足题目要求的接口。
importjava.applet.Applet;
importjava.awt.Color;
importjava.awt.Graphics;
importjava.util.Random;
importjava.util.Timer;
importjava.util.TimerTask;
publicclassTestextendsApplet{
=-1570645570118871214L;
privateintpx[],py[];
privateRandomrnd;
@Override
publicvoidinit(){
rnd=newRandom(System.currentTimeMillis());
px=newint[4];
py=newint[4];
Timert=newTimer();
t.scheleAtFixedRate(newTimerTask(){
@Override
publicvoidrun(){
repaint();
}
},0,1000);
}
privatevoidgenerate(){
for(inti=0;i<4;i++){
px[i]=rnd.nextInt(150);
py[i]=rnd.nextInt(150);
}
}
staticpublicvoiddrawBezier(
Graphicsg,
intx0,inty0,
intx1,inty1,
intx2,inty2,
intx3,inty3){
int
px[]={x0,x1,x2,x3},
py[]={y0,y1,y2,y3};
g.setColor(Color.RED);
for(inti=0;i<px.length;i++){
g.fillOval(px[i],py[i],5,5);
}
g.setColor(Color.GREEN);
doublex=0,y=0;
intc=0;
for(doublet=0;t<=1;t+=0.01){
doubledx=cubicBezier(t,px),
dy=cubicBezier(t,py);
System.out.println("dx:"+dx+",dy:"+dy);
if(c++>0)g.drawLine((int)x,(int)y,(int)dx,(int)dy);
x=dx;y=dy;
}
}
(doublet,intp[]){
returnMath.pow(1-t,3)*p[0]+
3*t*Math.pow(1-t,2)*p[1]+
3*Math.pow(t,2)*(1-t)*p[2]+
Math.pow(t,3)*p[3];
}
@Override
publicvoidpaint(Graphicsg){
generate();
drawBezier(g,
px[0],py[0],
px[1],py[1],
px[2],py[2],
px[3],py[3]
);
}
}