Вам понадобится следующая математика:
Предположим, что A = (Xa, Ya), B = (Xb, Yb) и C = (Xc, Yc). Любая точка на линии от А до В имеет координаты (альфа * Ха + (1-альфа) Xb, альфа Ya + (1-альфа) * Yb) = P
Если точка P имеет расстояние R до C, она должна быть на окружности. Вы хотите решить
distance(P, C) = R
, что
(alpha*Xa + (1-alpha)*Xb)^2 + (alpha*Ya + (1-alpha)*Yb)^2 = R^2
alpha^2*Xa^2 + alpha^2*Xb^2 - 2*alpha*Xb^2 + Xb^2 + alpha^2*Ya^2 + alpha^2*Yb^2 - 2*alpha*Yb^2 + Yb^2=R^2
(Xa^2 + Xb^2 + Ya^2 + Yb^2)*alpha^2 - 2*(Xb^2 + Yb^2)*alpha + (Xb^2 + Yb^2 - R^2) = 0
, если вы примените формулу ABC к этому уравнению для ее решения для альфы и вычислите координаты P используя решение (ы) для альфы, вы получаете точки пересечения, если они существуют.
Самый быстрый способ добиться этого:
<v-text-field
v-bind:value="getEntryFieldData(column)"
:label="column.headerName"
:disabled="disable || i == 0 || i == 4">
</v-text-field>
Итак, добавление,
В HTML
:disabled="setDisable(column.field)" works for me.
В Script
setDisable (colName) {
return this.entryState === 'read' || colName.toLowerCase().indexOf('id') !== -1;
}
работает для меня. В основном я проверяю, какой текст column.field имеет id и отключает его, проверяя его индекс.