1 前言

略,作为记录使用

2 代码

/**
* @Author: FB
* @Description:
* @File: RotateSample.go
* @Version: 1.0.0
* @Date: 2019/9/5 16:23
*/ package main import (
"math"
"strconv"
"fmt"
"log"
) func main() { Angle := 90.0
H := 100.0
W := 200.0
L := 0.0
T := 0.0 x,y := GetOffsetXYAfterRotationForSVG(W, H, L, T, Angle)
fmt.Println("x,y=",x,y)
} func GetOffsetXYAfterRotationForSVG(W, H, L, T, Angle float64) (x, y float64) { if Angle <= 0.0 {
return L, T
} if Angle > 90 && Angle <= 180 {
Angle = 180 - Angle
} else if Angle > 180 && Angle <= 270 {
Angle = 270 - Angle
} else if Angle > 270 && Angle <= 360 {
Angle = 360 - Angle
} else if Angle <= 0 {
log.Println("Exception-> Angle < 0")
//Angle = 360 + Angle
} else { //0<Angle<=90 } R := math.Sqrt(math.Pow(W, 2)+math.Pow(H, 2)) / 2
AngleRadBeta := math.Atan(H / W)
AngleBeta := AngleRadBeta * 180 / math.Pi fmt.Println("Angle,H,W,L,T,ZHalf,AngleBeta=", Angle, H, W, L, T, R, AngleBeta) //开始计算,在以对角线一半为半径画圆,初始化角度为Anglebeta
A1 := Angle + AngleBeta
A2 := 90 + Angle - AngleBeta
//A3 := AngleBeta - Angle AngleRad1 := A1 * math.Pi / 180
AngleRad2 := A2 * math.Pi / 180
//AngleRad3 := A3 * math.Pi / 180 SinA1 := math.Sin(AngleRad1)
SinA2 := math.Sin(AngleRad2)
//CosA3 := math.Cos(AngleRad3)
//fmt.Println("sin1,sin2,cos3=",SinA1,SinA2,CosA3) X := -R * SinA2
Y := -R * SinA1 fmt.Println("X,Y=", X, Y) x = L + DecimalPrec(X+W/2, 3)
y = T + DecimalPrec(Y+H/2, 3) return x, y } func DecimalPrec(value float64, prec int) float64 {
value, _ = strconv.ParseFloat(fmt.Sprintf("%."+strconv.Itoa(prec)+"f", value), 64)
return value
}

3 图片

说明:偏移量为P到P°的偏移量

[golang]按图片中心旋转后的新图左顶点和原图左顶点的偏移量计算的更多相关文章

  1. [golang]图片按中心旋转后,新图的左顶点位置的偏移量

    1 前言 图片按中心旋转后,新图的左顶点位置的偏移量 2 代码 func OffsetXYAfterRotationCore(W, H, L, T, Angle float64) (x, y floa ...

  2. C#放缩、截取、合并图片并生成高质量新图的类

    原文:C#放缩.截取.合并图片并生成高质量新图的类 using System;using System.Drawing;using System.Drawing.Imaging;using Syste ...

  3. PyQt实现图片中心旋转

    # -*- coding: cp936 -*- from PyQt4 import QtCore, QtGui, Qt class RotatePage(QtGui.QFrame): def __in ...

  4. 头像修改功能 包含ios旋转图片 但是旋转后没遮罩, 正常图片可以显示遮罩 宽高不规则图片没做控制 遮罩框可以拖动

    https://blog.csdn.net/wk767113154/article/details/77989544  参考资料 <template> <div id="p ...

  5. [图形学] 习题8.6 线段旋转后使用Cohen-Sutherland算法裁剪

    习题8.6 生成一条比观察窗口对角线还长的线段动画,线段重点位于观察窗口中心,每一帧的线段在上一帧基础上顺时针旋转一点,旋转后用Cohen-Sutherland线段裁剪算法进行裁剪. 步骤: 1 视口 ...

  6. C# 使用 GDI+ 实现添加中心旋转(任意角度)的文字

    这篇文章是 GDI+ 总结系列的第三篇,如果对 GDI+ 的基础使用不熟悉的朋友可以先看第一篇文章<C# 使用 GDI+ 画图>. 需求 需求是要实现给图片添加任意角度旋转的文字,文字的旋 ...

  7. [golang]svg图片默认按照左上角旋转,改为按中心旋转,重新计算中心偏移量

    1 前言 svg图片默认按照左上角旋转,改为按中心旋转,重新计算中心偏移量 2 代码 type Point struct { X float64 Y float64 } func GetOffsetX ...

  8. iOS开发 CGAffineTransform 让图片旋转, 旋转后获得图片旋转的角度

    1.让图片旋转 UIImageView *imageView = [[UIImageView alloc]init]; imageView.frame = CGRectMake(50, 50, 200 ...

  9. View以自身中心旋转的代码解惑

    matrix.preTranslate(-centerX, -centerY); matrix.postTranslate(centerX, centerY); 经常在中心旋转的应用中看到这段代码. ...

随机推荐

  1. kafka(五) 流式处理 kafka stream

    参考文档: http://www.infoq.com/cn/articles/kafka-analysis-part-7?utm_source=infoq&utm_campaign=user_ ...

  2. 第08组 Alpha冲刺(4/4)

    小李的博客 作业博客 作业链接 组员1李昕晖(组长) 过去两天完成了哪些任务 文字/口头描述 11月20日了解各个小组的进度与难以攻破的地方,晚上安排开会,安排新的冲刺任务. 实现地图功能 展示Git ...

  3. Java里方法的参数传递方式

    Java里方法的参数传递方式只有一种:值传递. Java中参数传递的都是参数值 下面从两个维度来看 1.传递的参数是8种基本数据类型 这个比较好理解,8种基本数据类型,作为参数时,可以理解为原来的一个 ...

  4. [oracle/java/sql]用于上十万批量数据插入Oracle表的Java程序

    程序下载:https://files.cnblogs.com/files/xiandedanteng/LeftInnerNotExist20191222.rar 原理:Oracle的Insert al ...

  5. 让Mac终端保持(SSH)与远程的连接状态

    编辑 /etc/ssh/ssh_config 添加以下设置可解决这个问题: # 断开时重试连接的次数 ServerAliveCountMax 5 # 每隔5秒自动发送一个空的请求以保持连接 Serve ...

  6. FilelistCreator --- 导出文件列表神器 及其他好用工具

    https://www.sttmedia.com/ Standard Software WordCreator: Creates readable words, sentences or texts ...

  7. vue方法中传递dom对象示例

    <div id="app"> <input type="text" v-on:keyup="onlyNum($event)" ...

  8. 开源录屏软件Capture推荐

    参考链接:有哪些值得推荐的电脑录屏软件与手机录屏软件? - 霸都丶傲天的回答 - 知乎 下载地址(9.0支持中文)

  9. 从ArcGIS连接Oracle数据库,并将Oracle数据库注册到ArcGIS Server

    环境说明 客户端机器环境: ① Win7 SP1 64位 ② ArcGIS Desktop 10.2 32位 ③ ArcGIS Server 10.2 64位 服务器环境 ① Windows Serv ...

  10. maven的依赖范围scope

    compile(编译范围) compile是默认的范围:如果没有提供一个范围,那该依赖的范围就是编译范 围.编译范围依赖在所有的classpath中可用,同时它们也会被打包. provided(已提供 ...