构造点,线结构

18 篇文章 0 订阅

任何类型的数据结构都可以构造,只要你能对其进行抽象。

辣么,如何构造点结构与线?

—–并没有提供太多操作方法—但是可以以此继续扩展—-

Java实现:

package com.pycat.simple.twoDimension;

import javafx.util.Pair;

/**
 * Created by cat on 2018/6/10.
 * 点
 */
public class Point<K, V> extends Pair<K, V> {
    /**
     * Creates a new pair
     *
     * @param key   The key for this pair
     * @param value The value to use for this pair
     */
     Point(K key, V value) {
        super(key, value);
    }

    @Override
    public String toString() {
        return String.format("Point(%s,%s)", getKey(), getValue());
    }
}
package com.pycat.simple.twoDimension;

import javafx.util.Pair;

/**
 * Created by cat on 2018/6/10.
 * 线
 */
public class Line<K, V> extends Pair<K, V> {
    /**
     * Creates a new pair
     *
     * @param key   The key for this pair
     * @param value The value to use for this pair
     */
    Line(K key, V value) {
        super(key, value);
    }

    @Override
    public String toString() {
        return String.format("Line(%s,%s)", getKey(), getValue());
    }
}
package com.pycat.simple.twoDimension;

/**
 * Created by cat on 2018/6/10.
 * 点,线操作
 */
public class LineOperator {

    private LineOperator() {
    }

    public static Point<Number, Number> makePoint(Number x, Number y) {
        return new Point<>(x, y);
    }

    public static Line<Point<Number, Number>, Point<Number, Number>>
    makeLine(Point<Number, Number> p, Point<Number, Number> q) {
        return new Line<>(p, q);
    }

    public static Number dx(Point<Number, Number> p, Point<Number, Number> q) {

        return q.getKey().longValue() - p.getKey().longValue();
    }

    public static Number dy(Point<Number, Number> p, Point<Number, Number> q) {
        return q.getValue().longValue() - p.getValue().longValue();
    }

    public static Number distance(Point<Number, Number> p, Point<Number, Number> q) {
        return Math.sqrt(dx(p, q).longValue() * dx(p, q).longValue() * 1.0 +
                dy(p, q).longValue() * dy(p, q).longValue() * 1.0);
    }

    public static void main(String[] args) {
        Point<Number, Number> px = LineOperator.makePoint(1, 1);
        Point<Number, Number> py = LineOperator.makePoint(4, 5);
        System.out.println("dx=" + dx(px, py));
        System.out.println("dy=" + dy(px, py));
        System.out.println("length=" + distance(px, py));
    }
}

也许之前对编程有什么误解,也许现在对编程有误解,也许一直都有误解。

2333333333……..

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值